Você pode usar:
vi '+normal 15G25|' myfile.xml
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
?
Você pode usar:
vi '+normal 15G25|' myfile.xml
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
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 ()
)
apenas por diversão, há -c 'normal 14j24l'
que te colocará na linha 15 personagem 25
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 )
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