Como posso descobrir o que <Leader> está definido? E é possível remapear <Leader>?

64

Como posso descobrir qual chave está definida como minha <Leader>e como remapear?

krampstudio
fonte

Respostas:

62

Por padrão, seu <leader>é \, barra invertida. Você pode verificá-lo com:

:echo mapleader

Se isso lhe der um E121: Undefined variable: mapleader, significa que está definido como padrão \. Se isso lhe der outra coisa, é isso :-)

Você pode remapear facilmente. Eu mapeei para a barra de espaço:

:let mapleader = "\<Space>"

Observe que o valor de mapleaderé usado no momento em que o mapeamento é definido. Então, este exemplo:

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

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

Produzirá dois mapeamentos: ,ae <Space>a.

Isso significa que o valor atual de mapleadernão é necessariamente o valor que foi usado para definir seus mapeamentos!

Além disso, existe o maplocalleader, que é o mesmo que mapleader, exceto pelo uso <LocalLeader>e local do buffer atual.

Mais informações sobre <Leader>podem ser encontradas na ajuda do Vim :help mapleader.

OrangeTux
fonte
3
Por que precisamos de uma barra invertida "\<Space>"?
thameera 4/15
10
A barra invertida é necessária porque, caso contrário, o vim reconhecerá "<Space>" como uma sequência normal e não o código da chave de espaço. Veja :help expr-stringpara exemplos.
214156Tipo de arquivo
11
Apenas uma observação: por exemplo, let mapleader = ' 'também funciona para definir o <Leader>espaço. Se houver algum efeito colateral possível usando essa sintaxe, não hesite em mencioná-lo.
Daniel Andersson
Parece que maplocalleadertambém está definido como barra invertida por padrão. Talvez seja isso o que se entende por "é o mesmo que mapleader, mas eu não tinha certeza no começo."
Marte
Como posso desfazer um let mapleader = ","após o fato? Eu tentei unlet mapleadertão bem quanto, let mapleader = "\"mas não funciona. Preciso disso porque estou usando este pacote github.com/amix/vimrc, onde sugere ter meu próprio arquivo de configuração separado. O pacote mapeia o líder para a vírgula, então eu quero desfazer isso no meu arquivo de configuração separado.
Michael
8

Você pode exibir a chave do líder atual como esta :let mapleader

craigp
fonte
4
Tentando isso, eu entendo E121: Undefined variable: mapleader.
Praxeolitic
Então, por algum motivo, o mapleader não foi definido ou foi
desativado
5
Oh, entendi. Apenas uma observação para outras pessoas, se você não definir explicitamente a chave do líder, receberá o erro acima.
Praxeolitic
se você receber E121: Undefined variable: mapleader, isso significa que não foi definido, o que usará o padrão, que é uma barra invertida"\"
wisbucky 26/06