vim - abra o arquivo e vá para o número da linha usando <filename>: <line nbr>:


21

Várias ferramentas como grep, py.test, etc ... usar o padrão <FileName>:<line number>:para apontar para erros. Por exemplo:

; grep -Hn Common setup.cfg
setup.cfg:11:    Common

Como posso modificar o vim e o gvim para poder invocá-los da seguinte maneira:

gvim setup.cfg:11:

ao invés de

gvim setup.cfg +11

Eu sei que posso escrever um pequeno script de shell que analise as coisas, mas me pergunto se existe uma maneira mais fácil.


2
Isso não é exatamente análogo, mas o vim tem um recurso para carregar a saída do grep ou (por exemplo) erros do compilador do make e navegar entre eles. Veja :help quickfixpara mais informações.
usar o seguinte código

Respostas:



9

Não existe um caminho, e acho que um script é o único caminho. O motivo é que, se você tivesse um arquivo chamado setup.cfg: 11 e quisesse editá-lo?

Aqui está um script rápido que faz o que você quer como oneliner ...

editline() { vim ${1%%:*} +${1##*:}; }

Desculpe, isso não é exato: e se você tivesse um arquivo chamado +11? Você pode, é claro, usar --para isso.
Sardathrion - Restabelece Monica

2
Você pode editar um arquivo +11 dizendo vim ./+11
Julian


0

Você também pode usar esse alias:

alias gd 'set number=`echo \!:1 | perl -pe "s/([0-9]*:)?(.+)[,:]([0-9]+).*/\3/"`; set file=`echo \!:1 | perl -pe "s/([0-9]*:)?(.+)[,:]([0-9]+).*/\2/"`; eval "if ($number == $file) then \\
   gvim $file \\
else \\
   gvim $file +$number \\
endif"'
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.