vi linha de comando, ir linha e coluna

14

Eu tenho misturado o uso de emacs e vi ( vim ) por um longo tempo. Cada um deles tem sua vantagem. Eu analiso a saída de erro de um processo semelhante a uma compilação e obtenho um número de linha e coluna, mas só posso usar emacs para ir diretamente para uma linha e coluna:

emacs +15:25 myfile.xml

com vi só tenho o número da linha (de acordo com a página do manual)

vi +15 myfile.xml

Existe uma opção para colocar o cursor de posição em um padrão ( vi +/pattern myfile.xml ) que eu nunca pude trabalhar. Mas isso não me ajudaria, já que o padrão nem sempre é a primeira ocorrência no arquivo.

Como posso iniciar vi , de modo que vá para a coluna 25 na linha 15 do meu arquivo? Posso fazer algo com a opção -c ?

    
por Dominique 18.12.2014 / 17:21

6 respostas

16

Você pode usar:

vi '+normal 15G25|'  myfile.xml
    
por 18.12.2014 / 17:28
6

Com o plug-in de linha de arquivo , você pode simplesmente anexar linha e coluna ao arquivo name, ambos ao invocar o Vim e dentro com comandos como :edit :

vim myfile.xml:15:25
    
por 18.12.2014 / 18:00
4

Eu não sei sobre a opção -c , mas você deve ser capaz de fazer:

vi '+cal cursor(15,25)' myfile.xml

(não se esqueça de citar por causa do parêntese () )

    
por 18.12.2014 / 17:23
4

apenas por diversão, há -c 'normal 14j24l' que te colocará na linha 15 personagem 25

    
por 18.12.2014 / 22:50
2

Vale a pena notar:

-c command 

Execute o comando ex fornecido na inicialização. Apenas uma opção -c é permitida para o vi ; O Vim aceita até 10. Uma forma mais antiga dessa opção, +command , ainda é suportada.

O +command tem a mesma limitação de ex command ao usar vi .

O +/pattern também está limitado a um comando com vi .

(extraído de vim e ex editor )

    
por 18.12.2014 / 18:08
1

Você pode adicionar o seguinte código ao seu vimrc, Quando você retornar ao seu arquivo, o vim voltará automaticamente para a posição antiga:

if has("autocmd")
  au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
endif
    
por 19.12.2014 / 04:41

Tags