Co to jest <Leader>?

36

Widzę <Leader>dość często w plikach vimrc innych ludzi. Jak ten.

Co to jest? Co to robi?

Lyndon White
źródło
10
Akshay: Nie duplikat, który chce sprawdzić wartość <leader>, ten chce wiedzieć, co <leader>znaczy. Aby ta wartość mogła być interpretowana. Jest to różnica między pytaniem „W ruchu Newtona, co to jest v?” i „Biorąc pod uwagę, że jabłko spadło z drzewa o wysokości 10 m, co to jest v, gdy uderzy o ziemię?”
Lyndon White
3
Więc nie ma różnicy między <Leader>i <leader>, prawda?
Nikos Alexandris

Odpowiedzi:

25

Vim jest pełen różnych poleceń, które są przypisane do prawie wszystkich klawiszy na klawiaturze. Ale to powoduje problem: z jakich poleceń możemy korzystać dla własnych poleceń, bez ingerowania w istniejące? I w tym momencie <Leader>klucz wchodzi w grę. Pomyśl o <Leader>-key jak przestrzeni nazw dla dowolnych poleceń zdefiniowanych przez użytkownika. Możesz przypisać dowolne polecenie do odwzorowania z wiodącym <Leader>i możesz być całkowicie pewien, że twoje odwzorowanie niczego nie zepsuje.

Domyślnym kluczem <Leader>jest ukośnik odwrotny.

Aleksander Myszow
źródło
15

Cytując :help <Leader>:

Aby zdefiniować mapowanie wykorzystujące zmienną „mapleader”, <Leader>można użyć specjalnego ciągu „ ”. Jest on zastępowany wartością ciągu „mapleader”. Jeśli „mapleader” nie jest ustawiony lub pusty, zamiast niego używany jest ukośnik odwrotny. Przykład:

   :map <Leader>A  oanother line<Esc>  

Działa jak:

   :map \A  oanother line<Esc>  

Ale potem:

   :let mapleader = ","  

Działa jak:

   :map ,A  oanother line<Esc>

Innymi słowy, pozwala <Leader>zdefiniować pierwszy klucz odwzorowań (określony w kategoriach ).

John O'M.
źródło
8
Uważam, że uzasadnieniem tego <Leader>jest to, że zapewnia ci „czysty” sposób dostarczania niestandardowych skrótów, bez nadpisywania istniejących skrótów Vima.
Martin Tournoij