vim - apri il file e vai al numero di riga usando <nomefile>: <line nbr>:


21

Numerosi strumenti come grep, py.testecc., Usano il modello <FileName>:<line number>:per indicare errori. Per esempio:

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

Come posso modificare vim e gvim in modo da poterli invocare in questo modo:

gvim setup.cfg:11:

invece di

gvim setup.cfg +11

So di poter scrivere un piccolo script di shell che analizzerebbe le cose, ma mi chiedo se esiste un modo più semplice.


2
Questo non è esattamente analogo, ma vim ha una funzione per caricare l'output da grep o (ad esempio) errori del compilatore da make e navigare tra di loro. Vedi :help quickfixper maggiori informazioni.
Casuale 832,

Risposte:



9

Non esiste un modo e penso che una sceneggiatura sia l'unico modo. Il motivo è che cosa succede se si dispone di un file chiamato setup.cfg: 11 e si desidera modificarlo?

Ecco una breve sceneggiatura che fa quello che vuoi come oneliner ...

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

Spiacenti, non è preciso: cosa succede se si dispone di un file chiamato +11? Ovviamente puoi usarlo --per questo.
Sardathrion - Ripristina Monica il

2
Puoi modificare un file +11 dicendo vim ./+11
Julian


0

Puoi anche usare questo 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"'
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.