Inhaltsverzeichnis
Die Puffer des vim sind ein mächtiges Werkzeug um Zeilen oder ganze Textblöcke zwischen zwei oder mehreren Dateinen zu kopieren oder auszuschneiden (ähnlich Copy&Paste).
Einfache Aktionen zu Copy&Paste (Puffer)
Allgemeine Form | Beispiel | Erklärung des Befehls | Bemerkung |
---|---|---|---|
ESC yy | aktuelle Zeile in den Puffer schreiben | ||
ESC yw | aktuelles Wort in den Puffer schreiben | ||
ESC nyy | ESC 10yy | n Zeilen ab Cursorposition in den Puffer schreiben | |
ESC P | Pufferinhalt oberhalb von der aktuellen Zeile einfügen | ||
ESC p | Pufferinhalt unterhalb von der aktuellen Zeile einfügen | ||
ESC "pufferyy | ESC "ayy | kopiert die aktuelle Zeile in das Register „puffer“ (wobei Puffer von a-z bzw. 0-9 sein können) | |
ESC "pufferp | ESC 1p | fügt den Text aus den Register „puffer“ als nächste Zeile unterhalb der aktuellen ein | |
ESC 4,8m20 | Zeile 4 bis 8 hinter Zeile 20 schieben (move) | ||
ESC „pufferNy | ESC "d4y | 4 Leerzeilen in Puffer „d“ kopieren | |
ESC "pufferP | ESC "dP | einfügen von Puffer „d“ oberhalb des Cursor einfügen | |
ESC ddp | vertausche die aktuelle Zeile mit der nachfolgenden | ||
ESC 4yw | kopiere 4 Wörter (ab Cursorposition) in den Puffer | ||
ESC xp | unter dem Cursor stehenden Buchstaben mit dem darauf folgenden vertauschen |
Komplexere Aktionen zu Copy&Paste (Puffer)
Mehrere Zeilen an eine andere Stelle im Text kopieren
mehrere Zeilen (hier hinter Zeile 7) an eine andere Stelle im Text kopieren (zwischen Marke „x“ und „y“)
Allgemeine Form
ESC mx Cursor bewegen ab der kopiert werden soll my :'x,'ytLetzte_Zeile_hinter_der_einfügt_werden_soll
Beispiel
ESC mx my 'x,'yt7
Mehrere Zeilen an eine andere Stelle im Text verschieben
mehrere Zeilen (hier hinter Zeile 15) an eine andere Stelle im Text verschieben (zwischen Marke „x“ und „y“)
Allgemeine Form
ESC mx Cursor bewegen ab der kopiert werden soll my :'x,'ymLetzte_Zeile_hinter_der_einfügt_werden_soll
Beispiel
ESC mx my 'x,'ym15
Text kopieren zwischen zwei Dateien
Beliebig viel Text kopieren zwischen zwei Dateien (hier 2 Zeilen).
Allgemeine Form
ESC "aNY Cursor bewegen ab der kopiert werden soll :e datei2 Cursor bewegen ab der eingefügt werden soll "ap
Beispiel
ESC "a2Y :e datei2 "ap
Text aus ein anderer Datei einfügen
Einen Ausschnitt aus anderer Datei in die aktuelle Datei hinein kopieren (Text zwischen zwei gesetzten Marken).
Allgemeine Form
ESC e datei2 zum Anfang des Ausschnittes bewegen mk (Anfang markieren) "ay'k (Ende markieren) :e# (zurück zur Quelldatei) bewegen zur Zielzeile "ap
Beispiel
ESC e datei2 mk "ay'k :e# "ap
Block aus einer Datei einfügen
Einen kopierten Textblock aus einer Datei in die ursprüngliche Datei einfügen.
Allgemeine Form
ESC e datei2 zum Anfang des Ausschnittes bewegen mk (Anfang markieren) "ad'k (Ende markieren und Zeilen zwischen den Markierungen k und Puffer a löschen) ESC: e# (zur Quelldatei datei1) bewegen zur Zielzeile "ap
Beispiel
ESC e datei2 mk "ad'k ESC: e# "ap
Ausschneiden und Einfügen in anderer Datei
Einen Textblock auschneiden, im Puffer zwischenspeichern und in zweiter Datei den eben abgespeicherten Puffer einfügen.
Allgemeine Form
ESC "PufferNdd (N Zeilen löschen und in Puffer a schreiben) :w (abspeichern) :e datei2 (zur Zieldatei) bewegen zur Zielzeile "Pufferp (Puffer p einfügen)
Beispiel
ESC "a5dd (5 Zeilen löschen und in Puffer a schreiben) :w :e datei2 "ap