Löschen Sie alle derzeit definierten vim-Makros

8

Ich habe ein vim-Makro, das ich immer 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.

Ich habe nach einer Möglichkeit gesucht, entweder die aktuell definierten Makros aufzulisten (damit ich das Problem neu definieren kann) 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

    
Simon Walker 22.04.2010, 09:17
quelle

2 Antworten

19

Makros

Was in vim meist als Makro bezeichnet wird, wird mit @ und einem Buchstaben eingeleitet. Es führt den Inhalt eines Registers mit dem genannten Buchstaben als Namen aus.

Listen Sie den Inhalt des Registers auf

:reg

Sie können das Register a mit

löschen

:let @a = ''

Manchmal sind Zuordnungen oder Abkürzungen für Makros verwechselt, daher hier einige Informationen über sie.

Listenzuordnungen

alle Abbildungen

:map

alle Zuordnungen, die mit \

beginnen

:map \

normaler Modus

:nmap

Einfügemodus

:imap

visueller Modus

:vmap

Befehlsmodus

:cmap

Abkürzungen auflisten

alle Abkürzungen

:abbr

alle Abkürzungen beginnend mit E-Mail

:abbr email

Einfügemodus

:iabbr

Befehlsmodus

:cabbr

Sie können :verbose vor den vorherigen Befehlen verwenden, um weitere Informationen darüber zu erhalten, wo die Zuordnung / Abkürzung zuletzt festgelegt wurde, z. B. in :verbose nmap . Diese Befehle zeigen auch alle Zuordnungen, die von Plugins und anderen Konfigurationsdateien festgelegt wurden.

Entfernen einer Zuordnung / Abkürzung

(nur ein paar der hier aufgelisteten Modi sollten Sie nur für einen bestimmten Modus entfernen können, genau wie bei den obigen Auflistungsbefehlen.)

Einfügen-Modus, entfernen Sie ein Mapping, das als \:

definiert ist

:iunmap \

normaler Modus:

:nunmap \

Entfernen Sie eine Abkürzung, die als E-Mail definiert ist:

:unabbr email

Einfügemodus:

:iunabbr email

Lösche Zuordnungen / Abkürzungen

Ich würde nicht empfehlen, alle Zuordnungen / Abkürzungen zu löschen, da Sie alles verlieren würden, was Ihre Plugins zugeordnet / abgekürzt haben. Sie können Zuordnungen jedoch löschen, indem Sie nach dem obigen Auflistungsbefehl den Buchstaben c eingeben, wie in :imapc , um Einfügungsmoduszuordnungen 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.

    
Heikki Naski 22.04.2010, 10:19
quelle
1

Um ein einzelnes Makro zu löschen - zeichnen Sie darüber auf - mit nichts.

Für Ihre Situation im normalen Modus tippen Sie einfach "qwq".

  • q, um mit der Aufzeichnung eines Makros zu beginnen
  • w, um den Pufferbereich auf w
  • zu setzen
  • q erneut, um das (jetzt leere) Makro
  • zu speichern

Bestätigen Sie mit: reg [ister] w

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

    
David Pocock 09.06.2015 21:07
quelle

Tags und Links