Jak mogę dowiedzieć się, na co ustawiony jest <Leader>? Czy jest możliwe ponowne mapowanie <Leader>?

64

Jak mogę dowiedzieć się, który klucz jest ustawiony jako mój <Leader>i jak go ponownie przypisać?

krampstudio
źródło

Odpowiedzi:

62

Domyślnie <leader>jest to \ukośnik odwrotny. Możesz to sprawdzić za pomocą:

:echo mapleader

Jeśli to daje E121: Undefined variable: mapleader, oznacza to, że jest ustawiony na domyślny \. Jeśli daje ci coś innego, to jest tak :-)

Możesz go łatwo odwzorować. Odwzorowałem to na spację:

:let mapleader = "\<Space>"

Należy zauważyć, że wartość parametru mapleaderjest używana w momencie zdefiniowania odwzorowania. Więc ten przykład:

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

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

Stworzy dwa mapowania: ,ai <Space>a.

Oznacza to, że bieżąca wartość mapleaderniekoniecznie jest wartością użytą do zdefiniowania mapowań!

Ponadto istnieje maplocalleadertaki sam mapleader, z wyjątkiem tego, że jest używany przez <LocalLeader>i jest lokalny dla bieżącego bufora.

Więcej informacji na temat <Leader>można znaleźć w pomocy Vima :help mapleader.

OrangeTux
źródło
3
Dlaczego potrzebujemy odwrotnego ukośnika "\<Space>"?
thameera
10
Odwrotny ukośnik jest wymagany, ponieważ w przeciwnym razie vim rozpozna „<Space>” jako normalny ciąg, a nie kod klawisza spacji. Zobacz :help expr-stringprzykłady.
tokoyami
1
Tylko uwaga: np. let mapleader = ' 'Działa również w przypadku ustawienia <Leader>miejsca. Jeśli przy użyciu tej składni występują jakieś skutki uboczne, możesz je wymienić.
Daniel Andersson
Wygląda na maplocalleaderto, że domyślnie ustawiony jest również odwrotny ukośnik. Może to właśnie oznaczało „to to samo co mapleader, ale na początku nie byłem pewien.
Mars
Jak mogę cofnąć let mapleader = ","po fakcie? Próbowałem unlet mapleaderrównie dobrze, let mapleader = "\"ale to nie działa. Potrzebuję tego, ponieważ używam tego pakietu github.com/amix/vimrc, w którym sugeruje się posiadanie mojego osobnego pliku konfiguracyjnego. Pakiet mapuje lidera do przecinka, więc chcę to cofnąć w moim osobnym pliku konfiguracyjnym.
Michael
8

Możesz wyświetlić aktualny klucz lidera w ten sposób :let mapleader

craigp
źródło
4
Próbuję tego, rozumiem E121: Undefined variable: mapleader.
Praxeolitic
Następnie z jakiegoś powodu przywódca klonu nie został ustawiony lub został rozbrojony
craigp
5
Ach, rozumiem. Uwaga dla innych, jeśli więc nie ustawisz wyraźnie klucza wiodącego, pojawi się powyższy błąd.
Praxeolitic
jeśli dostaniesz E121: Undefined variable: mapleader, oznacza to, że nie został ustawiony, który użyje wartości domyślnej, która jest odwrotnym ukośnikiem"\"
wisbucky