2010-04-22 6 views
8

Ich habe ein vim-Makro, das ich falsch beschreibe, normalerweise, wenn ich versuche, etwas zu speichern, also mache ich es schnell und ich kann nicht herausfinden, welche Tasten ich gedrückt habe. Es ist ärgerlich, da es irrelevante Bash-Code in meine Datei einfügt, so dass ich das fehlerhafte Einfügen rückgängig machen muss, das auch das letzte Ding rückgängig macht, das ich tippte, das ich will.Lösche alle aktuell definierten vim-Makros

Ich war auf der Suche nach einer Möglichkeit, entweder die aktuell definierten Makros aufzulisten (so kann ich das Problem neu definieren), oder eine Möglichkeit, sie komplett zu löschen. Ich verwende Makros nur sehr kurzfristig, so dass es mir nichts ausmacht, sie alle zu verlieren.

Prost

Antwort

19

Makros

Was meist ein Makro in vim genannt wird, ist mit @ und einen Brief eingeleitet. Es führt den Inhalt eines Registers mit dem genannten Buchstaben als Namen aus.

Liste der Registerinhalt

:reg

Sie das mit einem Register löschen kann

:let @a = ''


Manchmal Mappings oder Abkürzungen sind verwirrt für Makros, ist daher hier einige Informationen über sie .

Liste Zuordnungen

alle Abbildungen

:map

alle Zuordnungen, die mit \

:map \

normalen Modus

starten

:nmap

Einfügemodus

:imap

visuellen Modus

:vmap

Befehlsmodus

:cmap

Liste Abkürzungen

alle Abkürzungen

:abbr

alle Abkürzungen mit E-Mail-Ausgangs

:abbr email

Einfügemodus

:iabbr

Befehlsmodus

:cabbr

Sie :verbose vor den vorherigen Befehle verwenden können, um mehr Informationen darüber, wo die Kartierungs-/Abkürzung zuletzt gesetzt wurde, wie in :verbose nmap zu bekommen. Diese Befehle zeigen auch alle Zuordnungen an, die von Plugins und anderen Konfigurationsdateien festgelegt wurden.

eine Zuordnung/Abkürzung Entfernen

(nur ein paar Modi hier aufgeführt sind, sollten Sie in der Lage sein, einen entfernen nur für einen bestimmten Modus wie bei der Auflistung über Befehle.)

Einfügemodus, eine Zuordnung entfernen, die als \ definiert ist:

:iunmap \\

Normalmodus:

eine Abkürzung

:nunmap \\

entfernen, wie E-Mail definiert:

:unabbr email

Insert-Modus:

:iunabbr email

Klare Zuordnungen/Abkürzungen

Ich würde alle Zuordnungen/Abkürzungen Clearing nicht empfehlen, da alles, was das Plug-ins haben kartiert/abgekürzt verlieren würde. Sie können jedoch Mappings löschen, indem Sie nach dem obigen Auflistungsbefehl den Buchstaben c setzen, wie in :imapc, um die Einfügemoduszuordnungen zu löschen. Abkürzungen können mit :abclear oder nur für den Einfügemodus :iabclear und nur für den Befehlsmodus :cabclear gelöscht werden.

+0

Danke dafür war es ein Makro am Ende (@w, die leicht beim Speichern eingegeben werden konnte!). Ich habe es jetzt geklärt, Prost –

+0

Nur aus Neugier, wie genau sparen Sie, wenn Sie @w vertippen könnten? Und entschuldige, dass du angenommen hast, dass du etwas anderes gemeint hast, es ist nur so, dass selbst die Hilfe von vim dich zum Schlüssel-Mapping-Abschnitt führt, wenn du nach folgendem suchst: h macro. Ich habe die Antwort so bearbeitet, dass der Makro-Teil am Anfang der Antwort steht. –

+0

Ich speichere in vim mit: w, wie speichere ich eine Datei? Wie du herausgefunden hast, hat mich die Hilfe von vim an den falschen Ort gelenkt, daher die Frage. –

1

Um ein einzelnes Makro zu löschen - überzeichnen Sie es - mit nichts.

Für Ihre Situation im normalen Modus würden Sie einfach "qwq" eingeben.

  • q beginnen ein Makro
  • w aufnehmen wieder den Pufferraum auf w
  • q (jetzt leer) Makro

Stellen Sie sicher, mit zu speichern: reg [ister] w

Das ist nur etwas schneller als: lassen Sie @w = '', aber für mich ist leichter zu merken.

Verwandte Themen