Co to jest <lider> w pliku .vimrc?

1068

Widzę <leader>w wielu .vimrcplikach i zastanawiam się, co to znaczy?

Do czego jest to używane?

Byłby tylko ogólny przegląd celu i sposobu użycia.

Bob Martens
źródło
10
Zdaję sobie sprawę, że myślę, że kluczowym zrozumieniem jest to, że używając <leader>skrótów klawiaturowych skutecznie tworzysz przestrzeń nazw, aby niestandardowe skróty nie opierały się na wbudowanym zachowaniu vima. Zobacz odpowiedź @Pete Schlette poniżej.
Użytkownik
3
Jeśli chcesz sprawdzić, co to <leader>jest, użyj :echo mapleaderlub :let mapleader. Jeśli nie zostanie zdefiniowany, użyje wartości domyślnej, która jest odwrotnym ukośnikiem"\"
wisbucky

Odpowiedzi:

984

<Leader>Klucz jest odwzorowywany \domyślnie. Więc jeśli masz mapę <Leader>t, możesz ją wykonać domyślnie za pomocą \+ t. Aby uzyskać więcej szczegółów lub ponowne przypisanie go za pomocą mapleaderzmiennej, zobacz

: lider pomocy

Aby zdefiniować mapowanie wykorzystujące zmienną „mapleader”, ciąg specjalny
Można użyć „<Leader>”. 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> Kolejna linia <Esc>
Działa jak:
    : map \ Kolejna linia <Esc>
Ale potem:
    : let mapleader = ","
Działa jak:
    : map, Kolejna linia <Esc>

Zauważ, że wartość „mapleader” jest używana w momencie mapowania
zdefiniowane. Zmiana „mapleader” po tym nie ma wpływu na już zdefiniowane
mapowania.


Vereb
źródło
48
Zmiana na ,jest dobra. O wiele łatwiej jest dotrzeć niż \\ , a kto i tak używa ,vima?
Gabe Moothart
41
@Gabe Moothart. : h, daje „Powtórz ostatnie f, t, F lub T w przeciwnym kierunku [zliczanie] razy”. To całkiem wygodne.
Maxim Kim,
10
Jest też dobry napis tutaj: stevelosh.com/blog/2010/09/coming-home-to-vim/#using-the-leader
Sukotto
66
Podoba mi się spacja (' ')jako klawisz wiodący, ponieważ mogę go nacisnąć dowolną ręką, dzięki czemu klawisz kontynuacji (niezależnie od tego, czy znajduje się po lewej, czy po prawej stronie klawiatury) jest równie szybko uruchamiany później. Posiadanie klawisza wiodącego, który sam znajduje się tylko po jednej stronie klawiatury, sprawia, że ​​naciskanie kolejnych klawiszy po tej samej stronie klawiatury jest nieco bardziej kłopotliwe. Nitpicky, wiem. :)
jefflunt
3
@jefflunt Mój prawy kciuk ma już tydzień, ponieważ nigdy nie używałem go do pisania. Używam tylko lewego kciuka do uderzania w spacje. Ten klucz lidera kosmosu nie zapewnia mi tej samej korzyści.
off99555,
263

Pamiętaj, że po naciśnięciu <leader>klawisza masz tylko 1000 ms (domyślnie) na wprowadzenie następującego po nim polecenia .

Jest to zaostrzone, ponieważ nie ma wizualnego sprzężenia zwrotnego (domyślnie), że nacisnąłeś <leader>klawisz i vim czeka na polecenie; dlatego nie ma też wizualnego sposobu, aby wiedzieć, kiedy upłynął ten czas.

Jeśli dodasz set showcmddo swojego vimrc, zobaczysz swój <leader>klucz pojawiający się w prawym dolnym rogu vima (po lewej stronie lokalizacji kursora), a co ważniejsze, zobaczysz, że znika, gdy upłynie limit czasu.

Długość limitu czasu można również ustawić w swoim vimrc, zobacz :help timeoutlenwięcej informacji.

Davetapley
źródło
11
«: Set showcmd» pokazuje bieżące polecenie, stąd klawisz linii odniesienia, kiedy jest aktywny.
greg
4
Wobec braku sprzężenia zwrotnego, podczas gdy domyślnie nie ma sprzężenia wizualnego, wydaje się, że vim wyda dźwięk dzwonka systemowego, jeśli po naciśnięciu nie otrzyma polecenia w ciągu 1000 ms <leader>.
Bailey Parker
113

„Klucz wiodący” to sposób na rozszerzenie mocy skrótów VIM poprzez użycie sekwencji klawiszy do wykonania polecenia. Domyślny klucz wiodący to ukośnik odwrotny. Dlatego jeśli masz mapę <Leader> Q, możesz wykonać tę akcję, wpisując \ Q.

Mikeage
źródło
4
\Qw tym samym czasie? lub pierwsze ` release it and then Q`
Arnold Roa
9
@ArnoldRoa Ilekroć są wymienione polecenia vim, składnia ggdGoznacza naciskanie kolejno tych czterech klawiszy. Składnia podobna <C-w><C-j>oznacza naciśnięcie CTRL + w, a następnie CTRL + j.
gobernador
91

<leader>Klucz Vima to sposób na utworzenie przestrzeni nazw dla poleceń, które chcesz zdefiniować. Vim już mapuje większość klawiszy i kombinacji Ctrl+ (niektóre klawisze), więc <leader>(some key)tutaj (lub wtyczki) możesz dodać niestandardowe zachowanie.

Na przykład, jeśli często usuwasz dokładnie 3 słowa i 7 znaków, wygodne może być mapowanie polecenia, nmap <leader>d 3dw7xtak aby naciśnięcie klawisza wiodącego, a następnie d, usunęło 3 słowa i 7 znaków. Ponieważ używa on klucza wiodącego jako prefiksu, możesz (względnie) mieć pewność, że nie będziesz deptać po wcześniejszych zachowaniach.

Domyślnym kluczem <leader>jest \, ale można użyć polecenia, :let mapleader = ","aby przypisać go do innego klucza ( ,w tym przypadku).

Strona Usevima w kluczu lidera zawiera więcej informacji.

Pete Schlette
źródło
8

W moim systemie jest to \klucz. służy do poleceń, dzięki czemu można go łączyć z innymi znakami.

Arkaitz Jimenez
źródło