Mit der Vim-Makrofunktion können Sie eine Folge von Aktionen im Editor aufzeichnen und wiedergeben.
Dieser Artikel erklärt anhand von zwei detaillierten Beispielen, wie Sie im Vi- und Vim-Editor aufnehmen und wiedergeben.
High-Level-Schritte zum Aufnehmen und Abspielen in Vim
- Starten Sie die Aufnahme durch Drücken von q, gefolgt von einem Kleinbuchstaben, um das Makro zu benennen
- Führen Sie typische Bearbeitungen und Aktionen im Vim-Editor durch, die aufgezeichnet werden
- Stoppen Sie die Aufnahme durch Drücken von q
- Spielen Sie das aufgezeichnete Makro ab, indem Sie @ gefolgt vom Makronamen drücken
- Um Makros mehrmals zu wiederholen, drücken Sie :NN @ Makroname. NN ist eine Zahl
Beispiel 1:Sequenznummerngenerierung in einer Datei mit Vim-Makro
1. Starten Sie eine sequence-test.txt-Datei, um die Sequenz zu generieren.
$ vim sequence-test.txt
2. Wechseln Sie in den Einfügemodus und geben Sie „1“ ein. wie unten gezeigt
Geben Sie Folgendes ein:Esc i gefolgt von 1.
$ vim sequence-test.txt 1.
3. Starten Sie die Aufnahme und speichern Sie sie in Register a.
Geben Sie Folgendes ein:Esc q gefolgt von a
- q zeigt an, dass die Aufnahme gestartet werden soll
- a gibt an, dass die Aufnahmen in Register a gespeichert werden sollen
- Wenn Sie q a ausführen, wird unten im vi „Aufnahme“ angezeigt.
4. Kopieren Sie die 1. Zeile in die 2. Zeile, um zwei Zeilen mit 1 zu haben. wie unten gezeigt
Geben Sie Folgendes ein:Esc yy gefolgt von p
- yy kopiert die aktuelle Zeile
- p fügt die gerade kopierte Zeile ein
$ vim sequence-test.txt 1. 1.
Hinweis: Vim zeigt weiterhin die Aufzeichnung unten an, wie unten gezeigt.

Abb. :Vim zeigt unten eine Aufnahmenachricht
5. Erhöhen Sie die Zahl.
Tippe:Steuere a
Indem Sie den Cursor in der zweiten Zeile platzieren, drücken Sie Strg+a, wodurch die Zahl auf 2 erhöht wird, wie unten gezeigt.
$ vim sequence-test.txt 1. 2.
Hinweis: vim zeigt immer noch die Aufzeichnung unten an.
6. Stoppen Sie die Aufnahme
Geben Sie Folgendes ein:q
Drücken Sie q, um die Aufnahme zu stoppen. Sie werden feststellen, dass die Aufnahmemeldung am unteren Rand des vim jetzt verschwunden ist.
7. Wiederholen Sie die Aufnahme 98 Mal.
Geben Sie Folgendes ein:98@a
- Wiederholen Sie nun diesen Job, indem Sie 98 @ a eingeben
- @a wiederholt das Makro „a“ einmal.
- 98@a wiederholt die Makros „a“ 98 Mal und erzeugt die Sequenznummer 1 – 100, wie unten gezeigt, unter Verwendung von Makros.

Abb. :Sequenznummer in Vim mit Makro generieren
Beispiel 2:Vim-Makro mit unterschiedlichen Argumenten wiederholen
Dieses Beispiel erklärt, wie Sie denselben Befehl mit unterschiedlichen Eingaben ausführen können. d.h. Framing desselben Befehls mit unterschiedlichen Argumenten.
Vor dem Ausführen des Makros:change-password.sql
$ vim change-password.sql Annette Warren Anthony Preston Kelly Taylor Stiller Dennis Schwartz
Nach dem Aufzeichnen und Ausführen des Makros:change-password.sql
$ vim change-password.sql ALTER USER Annette IDENTIFIED BY 'Annette'; ALTER USER Warren IDENTIFIED BY 'Warren'; ALTER USER Anthony IDENTIFIED BY 'Anthony '; ALTER USER Preston IDENTIFIED BY 'Preston'; ALTER USER Kelly IDENTIFIED BY 'Kelly '; ALTER USER Taylor IDENTIFIED BY 'Taylor'; ALTER USER Stiller IDENTIFIED BY 'Stiller'; ALTER USER Dennis IDENTIFIED BY 'Dennis'; ALTER USER Schwart IDENTIFIED BY 'Schwart';
1. Öffnen Sie die change-password.sql, die nur die Namen enthält.
$ vim change-password.sql Annette Warren Anthony Preston Kelly Taylor Stiller Dennis Schwartz
2. Starten Sie die Aufnahme und speichern Sie sie in Register a
Geben Sie Folgendes ein:q a
- q zeigt an, dass die Aufnahme gestartet werden soll
- a gibt an, dass die Aufnahmen in Register a gespeichert werden sollen
- Wenn Sie q a ausführen, wird die Nachrichtenaufzeichnung unten im vi angezeigt.
3. Wechseln Sie in den Einfügemodus und geben Sie ALTER USER
ein
Geben Sie ein:I (Großbuchstabe i) gefolgt von „ALTER USER“
Platzieren Sie den Cursor an einer beliebigen Stelle in der ersten Zeile und drücken Sie dann I. Dadurch gelangen Sie zum ersten Zeichen der Zeile. Geben Sie ALTER USER
4. Kopieren Sie das nächste Wort (d. h. den Namen)
Geben Sie Folgendes ein:Esc w yw
- Drücken Sie Esc und dann w, um zum nächsten Wort zu gehen ( name ).
- yw, kopiert das aktuelle Wort ( name ).
5.Gehen Sie zum Ende und geben Sie IDENTIFIED BY ‘
einGeben Sie Folgendes ein:Esc A gefolgt von „IDENTIFIED BY ‚“
- Drücken Sie Esc und A, um den Cursor an das Ende der Zeile zu bewegen, und geben Sie dann Leerzeichen ein.
- Typ IDENTIFIZIERT DURCH „
6. Fügen Sie den kopierten Namen ein
Geben Sie Folgendes ein:Esc p
Drücken Sie Esc und geben Sie dann p ein, um den Namen einzufügen, der in Schritt 4 kopiert wurde.
7. Vervollständigen Sie das Zitat am Ende.
Geben Sie Folgendes ein:Esc A gefolgt von „;
Drücken Sie Esc und A, um zum Ende der Zeile zu gehen, und ‘;
8. Zur nächsten Zeile springen und Aufnahme stoppen.
Geben Sie Folgendes ein:Esc j gefolgt von q
- j um zur nächsten Zeile zu gehen.
- q um die Aufnahme zu stoppen
Hinweis: Die unten im vi angezeigte Aufnahmemeldung verschwindet nun. In diesem Stadium sieht change-password.sql wie folgt aus.

Abb. :Vim Macro hat die Aufnahme abgeschlossen
9. Wiederholen Sie das Makro mit den Argumenten in der entsprechenden Zeile
Geben Sie Folgendes ein:8 @ a
- Wiederholen Sie diesen Job nun 8 Mal, indem Sie 8@a eingeben
- @a wiederholt das Makro „a“ einmal.
- 8@a wiederholt das Makro „a“ achtmal und vervollständigt den Rest der Zeile automatisch, wie unten gezeigt

Abb. :Vim Macro Play abgeschlossen
Empfohlene Lektüre
Vim 101 Hacks, von Ramesh Natarajan . Ich bin ein Kommandozeilen-Junkie. Also bin ich natürlich ein großer Fan von Vi- und Vim-Editoren. Vor einigen Jahren, als ich viel C-Code unter Linux geschrieben habe, habe ich alle verfügbaren Vim-Editor-Tipps und -Tricks gelesen. Basierend auf meiner Vim-Editor-Erfahrung habe ich das Vim 101 Hacks eBook geschrieben, das 101 praktische Beispiele zu verschiedenen erweiterten Vim-Funktionen enthält, die Sie im Vim-Editor schnell und produktiv machen werden. Auch wenn Sie Vi und Vim Editors seit mehreren Jahren verwenden und dieses Buch noch nicht gelesen haben, tun Sie sich bitte einen Gefallen und lesen Sie dieses Buch. Sie werden von den Möglichkeiten des Vim-Editors begeistert sein.
Tolle Vim-Editor-Artikel
Im Folgenden finden Sie einige großartige Vi/Vim-Editor-Tutorials die Sie vielleicht hilfreich finden.
- Turboladen Sie den Firefox-Browser mit der Vim-Editor-Funktionalität mit dem Vimperator-Add-on auf
- Tutorial:Erstellen Sie Vim als Ihre C/C++-IDE mit dem c.vim-Plugin
- Vim Editor in einen schönen Quellcode-Browser für jede Programmiersprache umwandeln
- 12 leistungsstarke Beispiele zum Suchen und Ersetzen für den Vim-Editor
Hinweis: Bitte abonnieren Sie The Geek Stuff und verpassen Sie keine zukünftigen Tipps und Tricks für Vi- und Vim-Editoren .