Comment savoir ce que <Leader> est configuré? Et est-il possible de remapper <Leader>?

64

Comment savoir quelle clé est définie sur mon <Leader>et comment la remapper?

krampstudio
la source

Réponses:

62

Par défaut , votre <leader>est - \, la barre oblique inverse. Vous pouvez le vérifier avec:

:echo mapleader

Si cela vous donne un E121: Undefined variable: mapleader, cela signifie que sa valeur par défaut est \. Si ça vous donne autre chose, alors c'est ça :-)

Vous pouvez facilement le remapper. Je l'ai mis en correspondance avec la barre d'espace:

:let mapleader = "\<Space>"

Notez que la valeur de mapleaderest utilisée au moment où le mappage est défini. Donc, cet exemple:

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

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

Produira deux cartographies: ,aet <Space>a.

Cela signifie que la valeur actuelle de mapleadern'est pas nécessairement la valeur qui a été utilisée pour définir vos mappages!

De plus, il y a le maplocalleadermême que mapleader, sauf qu'il est utilisé par <LocalLeader>et qu'il est local par rapport à la mémoire tampon actuelle.

Vous trouverez plus d'informations sur <Leader>l'aide de Vim avec :help mapleader.

OrangeTux
la source
3
Pourquoi avons-nous besoin d'une barre oblique inverse "\<Space>"?
thameera
10
La barre oblique inverse est obligatoire car sinon, vim reconnaîtra "<Espace>" en tant que chaîne normale et non le code de la touche d'espacement. Voir :help expr-stringpour des exemples.
tokoyami
1
Juste une note: par exemple, let mapleader = ' 'fonctionne également pour la mise <Leader>à l'espace. S'il existe des effets secondaires possibles en utilisant cette syntaxe, n'hésitez pas à les mentionner.
Daniel Andersson
Il semble que cette maplocalleaderoption soit également définie sur la barre oblique inversée par défaut. Peut-être que c'est ce que l'on entendait par "c'est la même chose que mapleader, mais je n'étais pas sûr au début.
Mars
Comment puis-je annuler un let mapleader = ","après le fait? J'ai essayé unlet mapleaderaussi bien let mapleader = "\"mais ça ne marche pas. J'ai besoin de cela parce que j'utilise ce paquetage github.com/amix/vimrc où il est suggéré d'avoir mon propre fichier de configuration séparé. Le bundle mappe le leader sur la virgule, je veux donc annuler cela dans mon fichier de configuration séparé.
Michael
8

Vous pouvez afficher la clé de leader actuelle comme ceci :let mapleader

craigp
la source
4
J'essaie ça E121: Undefined variable: mapleader.
Praxeolitic
Puis, pour une raison quelconque, le chef d'affiche n'a pas été défini ou n'a pas été
défini
5
Oh je comprends. Juste une note pour les autres, si vous ne définissez pas explicitement la clé de classement, vous obtenez l'erreur ci-dessus.
Praxeolitic
si vous obtenez E121: Undefined variable: mapleader, cela signifie qu'il n'a pas été défini, ce qui utilisera la valeur par défaut, qui est une barre oblique inverse"\"
wisbucky