vim - öffne Datei und gehe zu Zeilennummer mit <Dateiname>: <Zeilennummer>:


21

Mehrere Werkzeuge wie grep, py.testusw ... das Muster verwenden , <FileName>:<line number>:um Punkt auf Fehler. Beispielsweise:

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

Wie kann ich vim und gvim so ändern, dass ich sie folgendermaßen aufrufen kann:

gvim setup.cfg:11:

anstatt

gvim setup.cfg +11

Ich weiß, dass ich ein kleines Shell-Skript schreiben kann, das die Dinge analysieren würde, aber ich frage mich, ob es einen einfacheren Weg gibt.


2
Dies ist nicht genau analog, aber vim hat eine Funktion, mit der die Ausgabe von grep oder (zum Beispiel) Compiler-Fehlern von make geladen und zwischen diesen navigiert werden kann. Siehe :help quickfixfür weitere Informationen.
Random832

Antworten:



9

Es gibt keinen Weg, und ich denke, ein Skript ist der einzige Weg. Der Grund ist, was wäre, wenn Sie eine Datei namens setup.cfg: 11 hätten und diese bearbeiten wollten?

Hier ist ein kurzes Skript, das genau das macht, was Sie als Oneliner wollen ...

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

Entschuldigung, das ist nicht korrekt: Was ist, wenn Sie eine Datei namens hatten +11? Sie können natürlich dafür verwenden --.
Sardathrion

2
Sie können eine +11-Datei bearbeiten, indem Sie vim ./+11
Julian


0

Sie können auch einen solchen Alias ​​verwenden:

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"'
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.