Ich habe eine Menge Textdateien in einem Verzeichnis und weiß, dass ich jede einzeln bearbeiten muss.
Ich beginne an der Kommandozeile mit
vim *.txt
das öffnet die dateien als separate puffer in vim und lässt mich beim ersten schauen. Ich bearbeite es - dann speichere ich es mit ': w' und schließe den Puffer mit ': bd' und gehe zum nächsten über.
Dieses ': w: bd' zum Speichern und Schließen des Puffers scheint mir lang zu sein, und ich vermute, dass es eine vim ninja-Methode gibt - wie kann man den Puffer, an dem Sie arbeiten, auf einen Schlag speichern und schließen?
:next
Puffer zu gehen und alles zu schreiben / schließen, sobald Ihre Aufgabe erledigt ist:wqa
. Dies setzt voraus, dass Sie:set hidden
in Ihrem haben~/.vimrc
.Antworten:
Wenn Sie die Dateien über die Befehlszeile an Vim übergeben, werden sie nicht nur in Puffern geöffnet, sondern füllen auch die Argumentliste . Daher können Sie Befehle wie
:next
und verwenden:first
, um durch sie zu navigieren (und:argdo
für die Stapelverarbeitung, was ein raffinierter Trick sein kann). Der Befehl, den ich für Ihre Frage empfehle, ist:wnext
(Kurzform:wn
), das ist:write
der aktuelle Puffer und geht dann zu dem:next
einen.Sie brauchen keinen expliziten
:bdelete
Puffer, insbesondere nicht, wenn Sie Vim über die Befehlszeile mit einer Reihe von Dateien starten und es dann beenden, wenn Sie fertig sind. (Die einzigen Ausnahmen, die ich mir vorstellen kann, sind das Entladen einer großen Datei, um Systemspeicher zu sparen, oder die Wiederverwendung einer einzelnen GVIM-Instanz für viele verschiedene Bearbeitungen.)Wenn Sie dies jedoch wirklich möchten, definieren Sie einfach einen benutzerdefinierten Befehl, z
quelle
:w|bd
.:next
dass dies in einigen Fällen sinnvoller ist.Ich bin damit einverstanden, dass Sie keine offenen Puffer löschen müssen , die Sie derzeit nicht verwenden, aber ich möchte sie gerne löschen, da die Registerkarte von vim-airline aktiviert ist, in der alle offenen Puffer die ganze Zeit über oben in der Liste angezeigt werden Fenster. Ich habe folgendes in meinem
.vimrc
:qq
Speichert und schließt den aktuellen Puffer, beeinträchtigt aber auch die "Record Macro" -Funktionalität von vim (mit der ich einverstanden bin).quelle
ZZ
Programm fällt mir ein, aber das führt dazu, dass Vim vollständig gespeichert und beendet wird, anstatt nur den Puffer zu löschen. Kleinbuchstaben sindzz
möglicherweise eine interessante Alternative für alle, die Makros für wertvoller halten, als die Ansicht auf der aktuellen Cursorzeile zu zentrieren.Q
, nachdem mir klar wurde, wie wertvoll Aufnahmen in Vim sein können.