Come posso sapere su quale <Leader> è impostato? Ed è possibile rimappare <Leader>?


64

Come posso capire quale chiave è impostata come mia <Leader>e come posso rimapparla?

Risposte:


62

Di default il tuo <leader>è \, barra rovesciata. Puoi verificarlo con:

:echo mapleader

Se questo ti dà un E121: Undefined variable: mapleader, significa che è impostato sul valore predefinito di \. Se ti dà qualcos'altro, allora è che :-)

Puoi rimappare facilmente. L'ho mappato sulla barra spaziatrice:

:let mapleader = "\<Space>"

Si noti che il valore di mapleaderviene utilizzato al momento della definizione della mappatura. Quindi questo esempio:

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

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

Produrrà due mappature: ,ae <Space>a.

Ciò significa che il valore corrente di mapleadernon è necessariamente il valore che è stato usato per definire i tuoi mapping!

Inoltre, c'è il maplocalleader, che è lo stesso di mapleader, tranne che è usato da <LocalLeader>e che è locale al buffer corrente.

Maggiori informazioni su <Leader>sono disponibili nell'aiuto di Vim :help mapleader.


3
Perché abbiamo bisogno di una barra rovesciata "\<Space>"?
Thameera,

10
La barra rovesciata è necessaria perché altrimenti vim riconoscerà "<Spazio>" come una stringa normale e non come codice per la chiave spaziale. Vedi :help expr-stringper esempi.
Tokoyami,

1
Solo una nota: ad esempio let mapleader = ' 'funziona anche per l'impostazione <Leader>dello spazio. Se ci sono possibili effetti collaterali usando questa sintassi, sentiti libero di menzionarli.
Daniel Andersson,

Sembra che maplocalleadersia anche impostato su barra rovesciata per impostazione predefinita. Forse è quello che intendevo per "è lo stesso di mapleader, ma all'inizio non ero sicuro.
Mars

Come posso annullare un let mapleader = ","dopo il fatto? Ho provato unlet mapleadercosì come let mapleader = "\", ma non funziona. Ne ho bisogno perché sto usando questo bundle github.com/amix/vimrc dove mi suggerisce di avere il mio file di configurazione separato. Il bundle associa la virgola alla virgola, quindi desidero annullarla nel mio file di configurazione separato.
Michael,

8

È possibile visualizzare la chiave leader attuale in questo modo :let mapleader


4
Provando questo, capisco E121: Undefined variable: mapleader.
Prassolitico il

Quindi per qualche motivo il mapleader non è stato impostato o non è stato impostato
craigp

5
Oh, capito. Solo una nota per gli altri, quindi, se non si imposta esplicitamente la chiave guida, viene visualizzato l'errore sopra.
Prassolitico

se ottieni E121: Undefined variable: mapleader, ciò significa che non è stato impostato, il che utilizzerà l'impostazione predefinita, che è una barra rovesciata"\"
wisbucky
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.