Können Sie im Befehlsmodus auf Puffer verweisen?


7

Ich kenne %und #, die auf die Dateinamen der aktuellen und vorherigen Puffer im Befehlszeilenmodus verweisen. Gibt es eine Möglichkeit, andere Puffer auf ähnliche Weise zu referenzieren?

Nehmen wir zum Beispiel an, das :lsgibt mir:

1 #h   foo.txt
2  h   bar.txt
3 %a   baz.txt

... und ich möchte einen Befehl verwenden, der Folgendes bewirkt:

:!pandoc foo.txt bar.txt baz.txt -o out.pdf

Nur mit etwas weniger Tippen. Ich würde mir etwas in der Art von vorstellen

:!pandoc b1 b2 b3 -o out.pdf

Damit. Gibt es so etwas? Gibt es irgendwo ein Addon oder ein praktisches Stück Vimscript, das ich verwenden könnte?

Antworten:


8

Du kannst tun:

:!pandoc #1 #2 #3 -o out.pdf

Dies wird in der Hilfe unter kurz erwähnt :h :_#n.

Wenn Sie den vollständigen Pfad zur Datei benötigen (z. B. weil sich einige der Dateien in verschiedenen Verzeichnissen befinden), können Sie Folgendes anhängen :p:

:!pandoc #1:p #2:p #3:p -o out.pdf

Nett! Ich war mir nicht sicher, wie ich das in den Hilfedokumenten finden sollte (zeigt :h #Informationen zum Objekt im normalen Modus an). Ich brauche manchmal den kompletten Dateipfad, der laut Hilfe wäre :!pandoc #1:p #2:p #3:p -o out.pdf.
Evilsoup

3
@evilsoup, ein guter Trick zu wissen ist, Ctrl-Dwenn Sie einen Hilfebefehl eingeben. Es listet die möglichen Abschlüsse auf. Versuchen Sie zu tippen :h #und dann zu drücken Ctrl-D. Beachten Sie außerdem, dass hier im Gegensatz zur automatischen Vervollständigung der Shell alle Hilfethemen aufgelistet sind, die den typisierten Teilstring enthalten - er muss nicht am Anfang des Namens des Hilfethemas stehen.
Wildcard

@ Wildcard danke für den Tipp, der sich als nützlich erweisen wird, denke ich.
Evilsoup

Sie können auch auf den aktuellen Dateinamen des Puffers mit %und auf die alternative Datei mit verweisen #. ZB !kdiff3 % #wird der kdiff3Befehl mit den Dateinamen des aktuellen und des alternativen Puffers ausgeführt.
Ruslan
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.