Was ist der <Leiter> in einer .vimrc-Datei?


1070

Ich sehe <leader>in vielen .vimrcDateien, und ich frage mich, was es bedeutet?

Was wird es verwendet?

Nur ein allgemeiner Überblick über den Zweck und die Verwendung wäre großartig.


10
Mir wird klar, dass ich der Meinung bin, dass das Schlüsselverständnis darin besteht, dass Sie durch die Verwendung <leader>Ihrer Tastaturkürzel effektiv einen Namespace erstellen, damit Ihre benutzerdefinierten Verknüpfungen nicht auf das integrierte Vim-Verhalten einwirken. Weitere Informationen finden Sie in der Antwort von @Pete Schlette unten.
Benutzer

3
Wenn Sie überprüfen möchten, was Ihr <leader>ist, verwenden Sie :echo mapleaderoder :let mapleader. Wenn nicht definiert, wird die Standardeinstellung verwendet, bei der es sich um einen Backslash handelt"\"
wisbucky

Antworten:


984

Der <Leader>Schlüssel ist \standardmäßig zugeordnet. Wenn Sie also eine Karte von haben <Leader>t, können Sie diese standardmäßig mit \+ ausführen t. Weitere Informationen oder eine Neuzuweisung mithilfe der mapleaderVariablen finden Sie unter

: Führer helfen

Um ein Mapping zu definieren, das die Variable "mapleader" verwendet, die spezielle Zeichenfolge
"<Leader>" kann verwendet werden. Es wird durch den Zeichenfolgenwert "mapleader" ersetzt.
Wenn "mapleader" nicht gesetzt oder leer ist, wird stattdessen ein Backslash verwendet.  
Beispiel:
    : map <Leader> Eine andere Zeile <Esc>
Funktioniert wie:
    : map \ Eine andere Zeile <Esc>
Aber danach:
    : let mapleader = ","
Es funktioniert wie:
    : map, Eine andere Linie <Esc>

Beachten Sie, dass der Wert von "mapleader" zum Zeitpunkt der Zuordnung verwendet wird
definiert. Das Ändern des "Mapleader" danach hat keine Auswirkung auf bereits definierte
Zuordnungen.



48
Der Wechsel zu ,ist gut. Viel einfacher zu erreichen als \\ , und wer nutzt ,in vim überhaupt?
Gabe Moothart

41
@ Gabe Moothart. : h, gibt Ihnen "Wiederholen Sie die letzten f, t, F oder T in entgegengesetzter Richtung [count] mal." Es ist sehr praktisch.
Maxim Kim

10
Es gibt auch eine gute Zusammenfassung hier: stevelosh.com/blog/2010/09/coming-home-to-vim/#using-the-leader
Sukotto

66
Ich mag Leerzeichen (' ')als Führungstaste, weil ich sie mit beiden Händen drücken kann, sodass die Folgetaste (egal ob auf der linken oder rechten Seite der Tastatur) danach genauso schnell ausgelöst wird. Wenn Sie eine Führungstaste haben, die sich nur auf einer Seite der Tastatur befindet, ist das Drücken von Folgetasten auf derselben Seite der Tastatur etwas umständlicher. Nitpicky, ich weiß. :)
Jefflunt

3
@jefflunt Mein rechter Daumen ist schon eine Woche, weil ich ihn nie zum Tippen benutzt habe. Ich benutze also nur den linken Daumen, um Leerzeichen zu treffen. Dieser Space-Leader-Schlüssel bietet mir wohl nicht den gleichen Vorteil.
off99555

263

Beachten Sie, dass Sie beim Drücken Ihrer <leader>Taste nur 1000 ms (standardmäßig) Zeit haben , um den darauf folgenden Befehl einzugeben .

Dies wird noch verschärft, da (standardmäßig) keine visuelle Rückmeldung vorliegt, dass Sie Ihre <leader>Taste gedrückt haben und vim auf den Befehl wartet. und so gibt es auch keine visuelle Möglichkeit zu wissen, wann diese Auszeit passiert ist.

Wenn Sie set showcmdzu Ihrem hinzufügen , vimrcwird Ihr <leader>Schlüssel in der unteren rechten Ecke von vim (links von der Cursorposition) angezeigt, und was vielleicht noch wichtiger ist, Sie werden sehen, dass er verschwindet, wenn die Zeit abgelaufen ist.

Die Länge des Timeouts kann auch in Ihrem festgelegt vimrcwerden. :help timeoutlenWeitere Informationen finden Sie unter.


11
«: Set showmd» zeigt den aktuellen Befehl an, daher die Führungstaste, wenn er aktiv ist.
Greg

4
Aufgrund des Mangels an Rückmeldung, obwohl standardmäßig keine visuelle Rückmeldung erfolgt, scheint es, dass vim eine Systemglocke läutet, wenn es innerhalb von 1000 ms nach dem Drücken keinen Befehl erhält <leader>.
Bailey Parker

113

Die "Leader-Taste" ist eine Möglichkeit, die Leistung der VIM-Verknüpfungen zu erweitern, indem Tastenfolgen zum Ausführen eines Befehls verwendet werden. Der Standard-Führungsschlüssel ist Backslash. Wenn Sie eine Zuordnung von <Leader> Q haben, können Sie diese Aktion ausführen, indem Sie \ Q eingeben.


4
\Qzur selben Zeit? oder erstes ` release it and then Q`
Arnold Roa

9
@ArnoldRoa Immer wenn vim-Befehle aufgelistet sind, ggdGbedeutet die Syntax , diese vier Tasten nacheinander zu drücken. Eine Syntax wie <C-w><C-j>bedeutet, STRG + w gefolgt von STRG + j zu drücken.
Gobernador

91

Mit dem <leader>Schlüssel von Vim können Sie einen Namespace für Befehle erstellen, die Sie definieren möchten. Vim ordnet bereits die meisten Schlüssel und Kombinationen von Ctrl+ (einige Schlüssel) zu, sodass <leader>(some key)Sie (oder Plugins) benutzerdefiniertes Verhalten hinzufügen können.

Wenn Sie beispielsweise häufig genau 3 Wörter und 7 Zeichen löschen, ist es möglicherweise praktisch, einen Befehl über zuzuordnen, nmap <leader>d 3dw7xsodass durch Drücken der Führungstaste gefolgt von d 3 Wörter und 7 Zeichen gelöscht werden. Da der Führungsschlüssel als Präfix verwendet wird, können Sie (relativ) sicher sein, dass Sie nicht auf bereits vorhandenes Verhalten stampfen.

Der Standardschlüssel für <leader>ist \, aber Sie können den Befehl verwenden :let mapleader = ",", um ihn einem anderen Schlüssel zuzuordnen ( ,in diesem Fall).

Die Seite von Usevim auf dem Führungsschlüssel enthält weitere Informationen.


die bereitgestellte Verbindung 404s.
evanb

8

In meinem System ist es der \Schlüssel. Es wird für Befehle verwendet, damit Sie es mit anderen Zeichen kombinieren können.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.