Wie kann ich herausfinden, auf was <Leader> eingestellt ist? Und ist es möglich, <Anführer> neu zuzuordnen?

64

Wie kann ich herausfinden, welcher Schlüssel als mein festgelegt ist <Leader>, und wie kann ich ihn neu zuordnen?

krampstudio
quelle

Antworten:

62

Standardmäßig Ihre <leader>heißt \, Backslash. Sie können es überprüfen mit:

:echo mapleader

Wenn dies ein ergibt E121: Undefined variable: mapleader, bedeutet dies, dass es auf den Standardwert von gesetzt ist \. Wenn es dir noch etwas gibt, dann ist es das :-)

Sie können es leicht neu zuordnen. Ich habe es der Leertaste zugeordnet:

:let mapleader = "\<Space>"

Beachten Sie, dass der Wert von mapleaderzum Zeitpunkt der Definition der Zuordnung verwendet wird. Also dieses Beispiel:

let mapleader = ","
nnoremap <Leader>a :echo "Hey there ,"<CR>

let mapleader = "\<Space>"
nnoremap <Leader>a :echo "Hey there space"<CR>

Erzeugt zwei Zuordnungen: ,aund <Space>a.

Dies bedeutet, dass der aktuelle Wert von mapleadernicht unbedingt der Wert ist, der zum Definieren Ihrer Zuordnungen verwendet wurde!

Darüber hinaus gibt es das maplocalleader, was dasselbe ist wie mapleader, mit der Ausnahme, dass es von verwendet wird <LocalLeader>und lokal für den aktuellen Puffer ist.

Weitere Informationen <Leader>zu finden Sie in der Hilfe von Vim :help mapleader.

OrangeTux
quelle
3
Warum brauchen wir einen Backslash in "\<Space>"?
Thameera
10
Der umgekehrte Schrägstrich ist erforderlich, da vim sonst "<Leerzeichen>" als normale Zeichenfolge erkennt und nicht den Code für die Leertaste. Siehe :help expr-stringBeispiele.
Tokoyami
1
Nur eine Anmerkung: zB let mapleader = ' 'funktioniert auch zum Einstellen <Leader>auf Leerzeichen. Wenn es bei Verwendung dieser Syntax irgendwelche möglichen Nebenwirkungen gibt, können Sie diese gerne erwähnen.
Daniel Andersson
Es scheint, dass maplocalleaderstandardmäßig auch Backslash eingestellt ist. Vielleicht ist das, was mit "gemeint war, dasselbe wie mapleader, aber ich war mir zuerst nicht sicher.
Mars
Wie kann ich einen nachträglichen Vorgang rückgängig machen let mapleader = ","? Ich habe versucht , unlet mapleaderals auch , let mapleader = "\"aber es funktioniert nicht. Ich brauche dies, weil ich dieses Bundle " github.com/amix/vimrc" verwende, in dem vorgeschlagen wird, eine eigene Konfigurationsdatei zu haben. Das Bundle ordnet das Komma als Anführer zu, daher möchte ich dies in meiner separaten Konfigurationsdatei rückgängig machen.
Michael
8

Sie können den aktuellen Führungsschlüssel wie folgt anzeigen :let mapleader

craigp
quelle
4
Wenn ich das versuche, verstehe ich E121: Undefined variable: mapleader.
Praxeolitic
Dann aus irgendeinem Grund wurde der Mapleader nicht gesetzt oder wurde nicht gesetzt
craigp
5
Oh, verstanden. Nur ein Hinweis für andere, wenn Sie den Führerschlüssel nicht explizit festlegen, wird der obige Fehler angezeigt.
Praxeolitic
Wenn Sie bekommen E121: Undefined variable: mapleader, bedeutet dies, dass es nicht gesetzt wurde, was die Standardeinstellung verwendet, die ein Backslash ist"\"
wisbucky