Dies ist eine ziemlich merkwürdige Anfrage, da es keinen "Modus" zum Aufzeichnen eines Makros gibt. Nachdem ich einige Dokumente durchgesehen hatte, fand ich Folgendes inusr_10
Sie beginnen mit dem ersten Zeichen der ersten Zeile. Als nächstes führen Sie die folgenden Befehle aus:
qa Starten Sie die Aufzeichnung eines Makros in Register a .
^ Gehen Sie zum Zeilenanfang.
i # füge am Anfang der Zeile "String #include einfügen" ein.
$ Gehen Sie zum Ende der Zeile.
a "Fügen Sie das doppelte Anführungszeichen (") am Zeilenende hinzu.
j Gehen Sie zur nächsten Zeile.
q Beenden Sie die Aufzeichnung des Makros.
Das Besondere für mich war die Zeile "Starten Sie die Aufnahme eines Makros in Register a".
Da jedes Makro standardmäßig in einem Register gespeichert wird, hatte ich gehofft, dass wir es in der :reg
Liste sehen können. Es stellt sich heraus, dass es wie ein Zauber wirkt!
Beispiel:
Im normalen Modus: qaisomething<Esc>
und drinnen sehen :reg
wir den Eintrag!
"a isomething^[
Mit diesem Wissen sollten Sie in der Lage sein, die Register "auszuspionieren", um zu bestätigen, dass ein Makro aufgezeichnet wird (verwenden Sie bei jeder Aufzeichnung ein benanntes Register [Karte, q
um immer dasselbe Register zu verwenden (oder so ähnlich)]
Wenn Sie auf Probleme stoßen, lassen Sie es mich wissen und ich werde versuchen, Ihnen zu helfen (da diese Funktionalität auch für mich neu ist: D)
Bearbeiten
Um das Problem zu lösen, dass ein Register während des Ruckens verwendet wird, würde ich empfehlen, einen speziellen Registertyp zu untersuchen, den Sie nur für das vimL
Schreiben verwenden können (kein Ruck würde jemals im Register beschäftigt sein ( "ay
)).
Hier einige Informationen :help registers
zu den verfügbaren Registern
Es gibt zehn Arten von Registern: Register E354
Das unbenannte Register ""
10 nummerierte Register "0 bis" 9
Das kleine Löschregister "-
26 benannte Register "a bis" z oder "A bis" Z.
drei schreibgeschützte Register ":,"., "%
alternatives Pufferregister "#
das Ausdrucksregister "=
Die Auswahl- und Ablage-Register "*," + und "~"
Das Schwarze Loch Register "_
Letztes Suchmusterregister "/
Angenommen, Sie haben ein Register, das Sie jetzt verwenden werden, lautet das Problem "Woher weiß ich, wann die Aufzeichnung gestoppt wurde?". Zur Pflege dieser ich einen Blick auf die nehmen würde autocmd-event
für CursorHold
; Der Hinweis in den Hilfedokumenten sieht ziemlich vielversprechend aus (ich würde versuchen herauszufinden, wie ich den normalen cursorHold von dem inaktiven / nicht vorhandenen Ereignis unterscheiden kann, das auftritt, wenn Ihr Register für die Zwecke des Makros geschrieben wird).
CursorHold
Wenn der Benutzer für die mit 'updatetime' angegebene Zeit keine Taste drückt. Wird nicht erneut ausgelöst, bis der Benutzer eine Taste gedrückt hat (dh nicht alle 'Aktualisierungszeit' ms ausgelöst, wenn Sie Vim verlassen, um Kaffee zu kochen. :) Siehe | CursorHold-Beispiel | zur Vorschau von Tags. Dieses Ereignis wird nur im Normalmodus ausgelöst. Es wird nicht ausgelöst, wenn auf die Eingabe eines Befehlsarguments oder einer Bewegung nach einem Operator gewartet wird. Während der Aufzeichnung wird das CursorHold-Ereignis nicht ausgelöst. | q |