Che cos'è il <leader> in un file .vimrc?


1071

Vedo <leader>in molti .vimrcfile e mi chiedo cosa significhi?

A cosa serve?

Solo una panoramica generale dello scopo e dell'uso sarebbe ottima.


10
Sto arrivando a capire che penso che la chiave di comprensione sia che usando <leader>le scorciatoie da tastiera stai effettivamente creando uno spazio dei nomi in modo che le tue scorciatoie personalizzate non calpestino il comportamento integrato di VIM. Vedi di seguito la risposta di @Pete Schlette per ulteriori informazioni.
Utente

3
Se vuoi controllare qual <leader>è il tuo , usa :echo mapleadero :let mapleader. Se non definito, utilizzerà il valore predefinito, che è una barra rovesciata"\"
wisbucky,

Risposte:


985

La <Leader>chiave è mappata per \impostazione predefinita. Quindi, se hai una mappa di <Leader>t, puoi eseguirla per impostazione predefinita con \+ t. Per ulteriori dettagli o per riassegnarlo utilizzando la mapleadervariabile, vedere

: aiuto leader

Per definire una mappatura che utilizza la variabile "mapleader", la stringa speciale
"<Leader>" può essere utilizzato. Viene sostituito con il valore stringa di "mapleader".
Se "mapleader" non è impostato o vuoto, viene invece utilizzata una barra rovesciata.  
Esempio:
    : map <Leader> Una riga diversa <Esc>
Funziona come:
    : map \ Una riga <Esc>
Ma dopo:
    : let mapleader = ","
Funziona come:
    : map, un'altra riga <Esc>

Si noti che il valore di "mapleader" viene utilizzato al momento della mappatura
definito. La modifica di "mapleader" dopo non ha alcun effetto per già definito
mappature.



48
Il passaggio a ,è buono. Molto più facile da raggiungere di \\ e chi lo usa ,in vim comunque?
Gabe Moothart,

41
@Gabe Moothart. : h, ti dà "Ripeti gli ultimi f, t, F o T nella direzione opposta [conta] volte". È abbastanza conveniente.
Maxim Kim,


66
Mi piace lo spazio (' ')come chiave guida perché posso premerlo con entrambe le mani, rendendo il tasto di follow-up (sia sul lato sinistro o destro della tastiera) altrettanto rapido da attivare in seguito. Avere un tasto guida che si trova solo su un lato della tastiera rende i tasti di follow-up sullo stesso lato della tastiera leggermente più ingombranti. Nitpicky, lo so. :)
jefflunt il

3
@jefflunt Il mio pollice destro è già settimana perché non l'ho mai usato per scrivere. Quindi uso solo il pollice sinistro per colpire gli spazi. Quella chiave del leader dello spazio non mi offre lo stesso vantaggio, immagino.
off99555

263

Ricorda che quando premi il <leader>tasto hai solo 1000ms (per impostazione predefinita) per inserire il comando che lo segue.

Questo è esacerbato perché non c'è feedback visivo (per impostazione predefinita) che hai premuto il <leader>tasto e vim è in attesa del comando; e quindi non esiste alcun modo visivo per sapere quando è scaduto questo timeout.

Se lo aggiungi set showcmdal tuo vimrc, vedrai <leader>apparire la tua chiave nell'angolo in basso a destra di vim (a sinistra della posizione del cursore) e forse ancora più importante vedrai che scompare quando si verifica il timeout.

La durata del timeout può anche essere impostata nel tuo vimrc, vedi :help timeoutlenper maggiori informazioni.


11
«: Set showcmd» mostra il comando corrente, quindi il tasto guida quando è attivo.
Greg

4
Alla mancanza di feedback, mentre per impostazione predefinita non esiste un feedback visivo, sembra che vim suonerà una campana di sistema se non riceve un comando nei 1000 ms dopo aver premuto <leader>.
Bailey Parker,

113

Il "tasto Leader" è un modo per estendere la potenza delle scorciatoie di VIM usando sequenze di tasti per eseguire un comando. La chiave principale predefinita è una barra rovesciata. Pertanto, se si dispone di una mappa di <Leader> Q, è possibile eseguire tale azione digitando \ Q.


4
\Qallo stesso tempo? o primo ` release it and then Q`
Arnold Roa

9
@ArnoldRoa Ogni volta che vengono elencati i comandi vim, la sintassi ggdGsignifica premere quei quattro tasti in sequenza. Una sintassi come <C-w><C-j>significa premere CTRL + w, seguito da CTRL + j.
gobernador,

91

La <leader>chiave di Vim è un modo per creare uno spazio dei nomi per i comandi che si desidera definire. Vim mappa già la maggior parte dei tasti e delle combinazioni diCtrl + (alcuni tasti), quindi <leader>(some key)è dove tu (o plugin) puoi aggiungere un comportamento personalizzato.

Ad esempio, se ti accorgi spesso di eliminare esattamente 3 parole e 7 caratteri, potresti trovare comodo mappare un comando tramite nmap <leader>d 3dw7x modo tale che premendo il tasto guida seguito da d si cancellino 3 parole e 7 caratteri. Poiché utilizza la chiave principale come prefisso, puoi essere (relativamente) certo che non stai calpestando alcun comportamento preesistente.

La chiave predefinita per <leader>è \, ma è possibile utilizzare il comando :let mapleader = ","per rimappare su un'altra chiave ( ,in questo caso).

La pagina di Usevim sulla chiave guida contiene ulteriori informazioni.


il link fornito 404s.
evanb

8

Nel mio sistema è la \chiave. è usato per i comandi in modo da poterlo combinare con altri caratteri.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.