In dieser umfassenden Anleitung erkläre ich, wie man die Schlüssel in Vim zuordnet, um die Vorgänge zu automatisieren. Von der Erstellung einer einfachen Tastenzuordnung bis zur erweiterten Tastenzuordnung, einschließlich der Prozesse, sie dauerhaft zu machen und zu entfernen.
- Syntax
- Vim-Spezialargumente
- Erstellen einer einfachen Keymap
- Auflisten der Keymaps
- Keymaps dauerhaft machen
- Rekursion vermeiden
- Erstellen modusspezifischer Keymaps
- So ordnen Sie Mausereignisse zu
- So erstellen Sie eine Zuordnung mit dem Leader-Schlüssel in Vim
- So ordnen Sie eine Vimscript-Funktion zu
- So ordnen Sie externe Befehle in Vim zu
- So entfernen Sie eine Keymap in Vim
- Spickzettel zur Vim-Schlüsselzuordnung
- Abschluss
Syntax
Um den Schlüssel in Vim abzubilden, wird die folgende Syntax verwendet:
In der obigen Syntax:
|
nmap, imap, vmap, xmap, cmap oder omap | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
*In der obigen Syntax ist der Abschnitt Vim-SpezialargumenteVim-Spezialargumente sind Tags, die verwendet werden, um den Keymaps zusätzliche Funktionalität zu verleihen. Diese Argumente erscheinen nach dem Befehl :map und vor {rhs} und {lhs}. Um beispielsweise eine Map pufferspezifisch zu machen, verwenden Sie das spezielle Argument wie folgt: :Karte < Puffer > < C-a > ggVG
Die speziellen Tastennotationen von Vim werden im folgenden Bild erwähnt.
Wenn Sie beispielsweise die Leertaste bei der Tastenzuordnung verwenden möchten, wird die Erstellen einer einfachen Keymap in VimLassen Sie uns die Vim-Tastenzuordnung anhand eines einfachen Beispiels verstehen. Ich möchte den Befehl „Alle Zeilen auswählen“ zuordnen ( ggVG ) Zu Strg+a Schlüssel. Um die Tasten Strg+A zuzuordnen, führe ich den folgenden Befehl in Vim aus. :Karte < C-a > ggVG Hier, In ähnlicher Weise können Sie die Funktion zum Umschalten der Zeilennummer mit dem zuordnen F1 Schlüsselverwendung: :Karte < F1 > :Nummer setzen !Wenn Sie nun die Taste F1 drücken, wird die Zeilennummer aktiviert und durch erneutes Drücken wird sie deaktiviert. Beachten Sie, dass diese Methode nur die Schlüssel im aktuellen Puffer zuordnet und beim Schließen des Puffers entfernt wird. Auflisten der KeymapsVerwenden Sie den Befehl :map, um alle Tastenzuordnungen der Modi „Normal“, „Visual“ und „Operator Pending“ aufzulisten. :KarteUm die Schlüsselzuordnung von aufzulisten einfügen Und Befehlszeile Modi verwenden Sie die :map! Befehl. :Karte !Um die Tastenzuordnung eines bestimmten Modus aufzulisten, geben Sie einfach den Anfangsbuchstaben des Modus vor dem Schlüsselwort „map“ ein.
Um außerdem alle Karten einschließlich der Plugin-Karten mit Pfaden aufzulisten, verwenden Sie :ausführliche Karte Befehl. :ausführliche Karte Für einen bestimmten Schlüssel geben Sie einfach den Schlüssel im Befehl an ( :verbose Map Keymaps dauerhaft machenDie im obigen Abschnitt erwähnten Tastenzuordnungen ordnen nur die Tasten im aktuellen Puffer zu. Um Vim-Tastenzuordnungen dauerhaft zu machen, müssen die Zuordnungen in der vimrc-Datei platziert werden.
Beachten Sie, dass Sie beim Platzieren der Keymap im vimrc Fügen Sie vor der Datei keinen Doppelpunkt (:) ein Karte Befehl. Nach dem Platzieren der Keymap im vimrc Speichern Sie die Datei, speichern Sie sie und beenden Sie sie mit dem Befehl :wq oder den Tastenkombinationen Umschalt+zz. Die in der platzierten Keymaps vimrc Die Datei ist global und kann in allen Vim-Sitzungen verwendet werden. Bestimmte Keymaps können jedoch vorübergehend deaktiviert werden, wenn sie die Arbeit in der aktuellen Sitzung beeinträchtigen. Weitere Informationen finden Sie weiter unten im Abschnitt „So entfernen Sie eine Keymap in Vim“. Der vimrc ist die Einstellungsdatei von Vim, die verschiedene Befehle und Einstellungen enthält. Es ist in der vorhanden /usr/share/vim/ Verzeichnis auf macOS und /etc/vim unter Linux. Es ist wichtig zu beachten, dass die vimrc Dateien in den genannten Verzeichnissen sind systemspezifische Dateien. Sie können diese Dateien auch für die Tastenzuordnung bearbeiten, ich würde jedoch empfehlen, eine benutzerspezifische Datei zu erstellen vimrc Datei im Home-Verzeichnis. Rekursion vermeidenBevor Sie fortfahren, ist es wichtig, sich mit der Rekursion bei der Vim-Tastenzuordnung vertraut zu machen. Seine Nachteile und wie man sie verhindert. Es kann anhand eines Beispiels nachvollzogen werden. :Karte dd 3jddIm obigen Beispiel habe ich das zugeordnet dd Mit den Tasten bewegen Sie sich um 3 Zeilen nach unten und löschen die Zeile unter dem Cursor. Wenn ich jetzt drücke dd , wird versucht, die Karte auszuführen 3jdd . Vim wird das interpretieren dd Befehl als Karte und führen Sie die Karte wiederholt aus, wie in der folgenden Abbildung gezeigt.
Notiz : Rekursion kann den Vim-Editor einfrieren. Um die Sperrung aufzuheben, drücken Sie Strg+C Schlüssel. Um eine Rekursion zu vermeiden, ersetzen Sie die Karte Schlüsselwort mit noremap , Wo ' noch ' bedeutet nicht rekursiv . Ich werde das ersetzen Karte Schlüsselwort mit noremap um die Rekursion in der obigen Keymap zu beheben. :noremap dd 3jddIch werde die Verwendung empfehlen noremap anstatt Karte um zu vermeiden, dass versehentlich eine rekursive Zuordnung erstellt wird. Erstellen modusspezifischer KeymapsVim hat die Tastenbelegung so vielseitig gemacht, dass sogar eine Tastenbelegung eines bestimmten Modus ganz einfach erstellt werden kann. Wenn Sie beispielsweise eine Tastaturbelegung für den Einfügemodus mit einem erstellt haben F1 Schlüssel, dann können Sie dasselbe zuordnen F1 Geben Sie einen anderen Modus für einen völlig neuen Vorgang ein. Im folgenden Beispiel habe ich das zugeordnet F1 Taste zum Löschen von 3 Zeilen im normal Modus und ziehen Sie 3 Zeilen in den einfügen Modus. :nmap < F1 > 3dd:imap < F1 > < C-t > Die erste Karte löscht im Normalmodus drei Zeilen, wenn die Taste F1 gedrückt wird, während die zweite Karte im Einfügemodus mit derselben Taste einen Einzug in der aktuellen Zeile hinzufügt. Lassen Sie uns nun die Zuordnung in jedem Modus verstehen. Normalmodus-ZuordnungUm eine Karte im Normalmodus anzuwenden, verwenden Sie nur nmap Stichwort. Um beispielsweise alle Zeilen in einer Datei zu kopieren, verwenden Sie Strg+C Schlüssel verwende ich den folgenden Befehl. :nmap < C-c > ggVGyWie bereits erwähnt, ist es eine bewährte Methode, eine nicht rekursive Methode zum Zuordnen eines Schlüssels zu verwenden. Daher werde ich die ersetzen nmap mit nnoremap Stichwort. :nnoremap < C-c > ggVGyPlatzieren Sie es ohne Doppelpunkt (:) im vimrc Datei, um sie zu einer dauerhaften Tastaturbelegung zu machen. ich werde benützen noremap anstatt der Karte im folgenden Beispiel. Moduszuordnung einfügenUm Tasten für den Einfügemodus zuzuordnen, verwenden Sie einfach ich anstatt N . Im Einfügemodus beispielsweise Strg+P Und Strg+N Tasten werden verwendet, um das Wort basierend auf der Rückwärts- bzw. Vorwärtsübereinstimmung automatisch zu vervollständigen. Um die zu kartieren Strg+P Um die Tasten mit der Tabulatortaste zu verwenden, verwende ich den folgenden Befehl. :inoremap < Tab > < C-p > Noch wichtiger ist, wenn Sie eine Karte erstellen möchten Modus „Operator anstehend“. Befehle in der Einfügemodus , dann müssen Sie das einfügen Wenn ich jetzt drücke Strg+x Tasten drücken, wird das gedruckt 3ddi Befehl ausführen, anstatt ihn auszuführen.
Um das Problem zu beheben, werde ich das einfügen Jetzt führt der Befehl aus, dass ich im Einfügemodus bleibe. Vielen Mini-Laptops fehlt das Esc Taste, die wichtig ist, um den aktuellen Modus zu verlassen. Also, um das abzubilden Esc Um den Einfügemodus zu verlassen, kann die Tastenzuordnung verwendet werden. Im folgenden Beispiel verwende ich ex Mit den Tasten gelangen Sie in den Normalmodus zurück. :inoremap ex < Esc >Wenn Sie schnell drücken ex Mit den Tasten wird der Einfügemodus verlassen und in den Normalmodus zurückgekehrt. Visuelle ModuszuordnungDer visuelle Modus ist ein sehr wichtiger Modus zum Auswählen von Text im Vim-Editor. Neben der Grundauswahl verfügt der visuelle Modus über weitere verschiedene Modi, z. B. den visuellen Linien- und den visuellen Blockmodus. Im visuellen Modus Tilde (~) wird verwendet, um den Fall umzuschalten. Um Tilde (~) zu verwenden, müssen Sie die beiden Tasten drücken (Umschalt+~) . Im folgenden Beispiel ordne ich die c-Taste zu Visueller Modus um ein Wort unter dem Cursor auszuwählen und seine Groß-/Kleinschreibung zu ändern. :vnoremap c iw~Drücken Sie nun v, um in den visuellen Modus zu gelangen, und drücken Sie die Taste c, um das Wort unter dem Cursor umzuschalten, wie im folgenden GIF gezeigt.
Zuordnung des BefehlszeilenmodusViele wichtige Vim-Befehle funktionieren nur im Befehlszeilenmodus. Zum Beispiel, um die Datei zu speichern :In Der Befehl wird in ähnlicher Weise zum Speichern und Beenden verwendet :wq Befehl verwendet wird. Alle Tabulator- und Teilungsvorgänge werden auch im Befehlszeilenmodus ausgeführt. Um beispielsweise eine neue Registerkarte zu erstellen, muss die : untergeordnet Befehl verwendet wird. Nun, um schnell eine Registerkarte zu erstellen, Strg+T Schlüssel reichen aus. :cnoremap < C-t > Thema < CR >Drücken Sie nun den Doppelpunkt (:), um in den Befehlszeilenmodus zu gelangen, und dann Strg+T um einen neuen Tab zu öffnen; Es geht viel schneller, als das Ganze einzutippen Thema Befehl und Zurückkehren Schlüssel.
Erstellen benutzerdefinierter Vim-Befehle Rufen Sie nun den Befehlsmodus auf und führen Sie Folgendes aus :Mycmd Befehl. Zuweisung des vom Operator ausstehenden ModusDer Operator-Pending-Modus ist ein Modus, in dem Vim auf den Bewegungsbefehl wartet, nachdem die Operator-Taste gedrückt wurde. Die üblichen Operatoren sind y, d und c. Um beispielsweise die aktuelle Zeile und die drei folgenden Zeilen zu löschen, verwenden Sie den d-Operator mit 3j Bewegung (d3j). Sie können diese Tasten nicht gleichzeitig drücken, um den gewünschten Vorgang auszuführen. Der Modus wird im Allgemeinen zur Abbildung der Bewegungen verwendet. Lassen Sie uns eine Bewegung zuordnen, die die aktuelle Zeile und drei darauf folgende Zeilen auswählt. :onoremap < F2 > 3jUm nun die aktuelle Zeile und die drei darauf folgenden Zeilen zu verschieben, verwenden Sie die theF2 Schlüssel, auf die gleiche Weise, die D Operator kann ebenfalls angewendet werden. Eine weitere wichtige Sache, die Sie im Hinterkopf behalten sollten, ist beispielsweise, wenn Sie der oben genannten zugeordneten Bewegung eine Zählung hinzufügen 2 So ordnen Sie Mausereignisse zuObwohl Vim ein vollständig anpassbarer, tastaturbasierter Texteditor ist, wird er durch die Verfügbarkeit der Mausfunktion noch besser. Neben normalen Tastaturtasten können in Vim auch alle Mausereignisse abgebildet werden. Wenn Sie beispielsweise den rechten Doppelklick und den linken Doppelklick zuordnen möchten, um die Markierungen vorwärts bzw. rückwärts zu springen, verwenden Sie die folgende Zuordnung. :noremap < 2 -Rechte Maus > ] `:noremap < 2 -Linke Maus > [ ` Weitere Mausereignisse, die zugeordnet werden können, sind in der folgenden Tabelle aufgeführt.
So erstellen Sie eine Zuordnung mit dem Leader-Schlüssel in VimOhne den Leader-Schlüssel ist die Vim-Zuordnung unvollständig. Der Führungsschlüssel ist der Standardschlüssel, der zum Zuordnen von Schlüsseln verwendet werden kann, auch wenn diese für andere Aufgaben zugeordnet sind. Wenn Sie beispielsweise das zugeordnet haben D Um alle Zeilen zu löschen, können wir mit der Führungstaste dieselbe Taste zuordnen, um nur 5 Zeilen zu löschen. Für diejenigen, die nicht damit vertraut sind, mit dem Vim-Leader-Schlüssel. Dabei handelt es sich um einen Schlüssel, dem ein anderer Schlüssel oder eine Reihe von Schlüsseln zur Zuordnung von Befehlen oder Vorgängen vorangestellt ist. Der Standard-Anleitungsschlüssel von Vim ist ein Backslash (\), er ist jedoch anpassbar. Zum Beispiel die dd Mit dem Befehl wird die Zeile unter dem Cursor gelöscht. Wenn Sie das zuordnen möchten dd Befehl zum Löschen aller Zeilen in den Dateien, dann können Sie die Führungstaste verwenden. :noremap < Führer > dd ggVGdJetzt, wann immer Sie drücken \dd Wenn Sie die Taste drücken, werden alle Zeilen in der Datei gelöscht. Sie können die Vim-Starttaste als Steuertaste unter Windows oder als Befehlstaste unter macOS verwenden. So ordnen Sie eine Vimscript-Funktion zuDer Vim-Editor ist nicht auf die Befehle oder Operationen beschränkt. Um Vim herum gibt es eine komplette Programmiersprache namens Vimscript, mit der benutzerdefinierte Funktionen erstellt werden können. Sie können ganz einfach ein Skript oder eine Funktion erstellen und es einer Taste zuordnen. Erstellen wir beispielsweise eine Funktion, die Einstellungen wie Zeilennummer, Mausfunktionalität und Textbreite ermöglicht. Funktion Meine Einstellungen ( )Satz Nummer Satz Maus =a Satz Textbreite = 80 Endfunktion Platzieren Sie diese Funktion in der vimrc-Datei. Ordnen wir diese Funktion den Leader- und S-Tasten zu. ich werde benützen :noremap < Führer > s:rufen Sie MySettings auf ( ) < CR >Jetzt, wann immer Sie drücken \S Wenn Sie die Tasten drücken, wird die Funktion aufgerufen und alle darin enthaltenen Funktionen werden ausgeführt. Notiz : Der erste Buchstabe des Funktionsnamens sollte beim Erstellen einer benutzerdefinierten Funktion in Vim immer großgeschrieben werden. So ordnen Sie externe Befehle in Vim zuDie externen Befehle können auch in Vim abgebildet werden. Externe Befehle beziehen sich auf Linux- oder Unix-Befehle. Zum Beispiel, wenn Sie das Äußere abbilden möchten Sortieren Befehl zum Sortieren aller Zeilen im aktuellen Puffer nach F1 Schlüssel verwenden Sie den folgenden Befehl. :noremap < F1 > : %! Sortieren < CR >Wenn Sie eine Skriptdatei schreiben und sie ausführbar machen, ohne die Vim-Sitzung zu verlassen, können Sie auf die gleiche Weise Folgendes verwenden: chmod Befehl intern. Um beispielsweise die aktuelle Datei ausführbar zu machen, können Sie den Befehl ausführen :!chmod +x % in Vim. Wenn Sie diese Aufgabe häufig ausführen, ordnen Sie ihr einfach einen Schlüssel zu. :noremap < F1 > : ! chmod +x %In Vim kann jeder externe Befehl mit einem Ausrufezeichen (!) verwendet werden. So entfernen Sie eine Keymap in VimUm Keymaps in Vim zu entfernen, identifizieren Sie zunächst, wo sie definiert sind. Wie bereits erwähnt, können Keymaps pufferlokal und permanent sein. Wenn die Tastenzuordnung dauerhaft ist und in der vimrc-Datei abgelegt wird, wird die Zuordnung der Tasten durch einfaches Entfernen aus der Datei aufgehoben. Wenn die Zuordnung im aktuellen Puffer erfolgt, können sie mit entfernt werden :Karte aufheben oder :Karte aufheben! Befehle.
Zum Beispiel, um das zu entfernen
Um alle Karten im aktuellen Puffer zu entfernen, verwenden Sie die :mapclear Befehl. :mapclearDer obige Befehl löscht alle Tastenbelegungen im Normal-, Visual-, Select- oder Operator-Pending-Modus. Um alle Tastaturbelegungen im Einfüge- und Befehlszeilenmodus zu löschen, verwenden Sie: :mapclear ! Beachten Sie, dass die standardmäßigen Vim-Befehle nicht klar sein können, diese jedoch mithilfe von deaktiviert werden können :Karte aufheben Befehl mit Der dd ist im aktuellen Puffer nicht mehr funktionsfähig. Mit dieser Methode kann jede Tastaturbelegung für die aktuelle Sitzung deaktiviert werden. Spickzettel zur Vim-SchlüsselzuordnungDas folgende Bild enthält eine Liste aller Befehle und ihrer spezifischen Modi als Referenz.
AbschlussDie Vim-Tastenzuordnung ist eine praktische Möglichkeit, Ihre Aufgaben, häufig verwendete Tastenkombinationen, Befehle und andere Vorgänge zu automatisieren. Es ist ein vielfältiges Thema und in diesem Leitfaden habe ich alle wichtigen Aspekte im Zusammenhang mit der Tastenzuordnung in Vim behandelt. Von der allgemeinen Syntax über die Erstellung einer einfachen Tastaturbelegung bis hin zur Zuordnung erweiterter Vimscript-Funktionen und externer Befehle. Um mehr über die Vim-Tastenzuordnung zu erfahren, verwenden Sie die :Hilfe zur Tastenbelegung Befehl in Vim. |