O que é o <líder> em um arquivo .vimrc?

1070

Eu vejo <leader>em muitos .vimrcarquivos e estou me perguntando o que isso significa?

Para que isso é usado?

Apenas uma visão geral do objetivo e uso seria ótima.

Bob Martens
fonte
10
Estou percebendo que acho que o principal entendimento é que, usando os <leader>atalhos do teclado, você está efetivamente criando um espaço para nome para que seus atalhos personalizados não pisem no comportamento interno do vim. Veja a resposta de @Pete Schlette abaixo para mais informações.
Utilizador
3
Se você quiser verificar qual <leader>é, use :echo mapleaderou :let mapleader. Se não for definido, então ele usará o padrão, que é uma barra invertida"\"
wisbucky

Respostas:

984

A <Leader>chave é mapeada para \por padrão. Portanto, se você tiver um mapa de <Leader>t, poderá executá-lo por padrão com \+ t. Para obter mais detalhes ou redesigná-lo usando a mapleadervariável, consulte

: ajuda líder

Para definir um mapeamento que usa a variável "mapleader", a sequência especial
"<Leader>" pode ser usado. Ele é substituído pelo valor da string "mapleader".
Se "mapleader" não estiver definido ou vazio, uma barra invertida será usada.  
Exemplo:
    : map <Líder> Uma outra linha <Esc>
Funciona como:
    : map \ Uma outra linha <Esc>
Mas depois:
    : deixe mapleader = ","
Funciona como:
    : map, outra linha <Esc>

Observe que o valor de "mapleader" é usado no momento em que o mapeamento é
definiram. Alterar "mapleader" depois disso não tem efeito para os já definidos
mapeamentos.


Vereb
fonte
48
A mudança para ,é boa. Muito mais fácil de alcançar do que \\ , e quem usa ,no vim?
Gabe Moothart 19/11/2009
41
@Gabe Moothart. : h, fornece "Repita as últimas f, t, F ou T na direção oposta [contagem] vezes". É bastante conveniente.
Maxim Kim
10
Há também aa boa writeup aqui: stevelosh.com/blog/2010/09/coming-home-to-vim/#using-the-leader
Sukotto
66
Estou gostando do espaço (' ')como uma tecla líder porque posso pressioná-lo com uma das mãos, tornando a tecla de acompanhamento (no lado esquerdo ou direito do teclado) igualmente rápida para disparar depois. Ter uma tecla líder que fica apenas em um lado do teclado faz com que as teclas de acompanhamento do mesmo lado do teclado pareçam um pouco mais complicadas. Nitpicky, eu sei. :)
jefflunt
3
@jefflunt Meu polegar direito já é uma semana porque nunca o usei para digitar. Então, eu só uso o polegar esquerdo para acertar espaços. Essa chave de líder espacial não fornece o mesmo benefício para mim, eu acho.
precisa saber é o seguinte
263

Lembre-se de que, ao pressionar a <leader>tecla, você tem apenas 1000ms (por padrão) para inserir o comando a seguir.

Isso é exacerbado porque não feedback visual (por padrão) de que você pressionou a <leader>tecla e o vim está aguardando o comando; e, portanto, também não há maneira visual de saber quando esse tempo limite aconteceu.

Se você adicionar set showcmdao seu vimrc, verá a sua <leader>chave aparecer no canto inferior direito do vim (à esquerda do local do cursor) e, talvez mais importante, você o verá desaparecer quando o tempo limite ocorrer.

A duração do tempo limite também pode ser definida no seu vimrc, consulte :help timeoutlenpara obter mais informações.

Davetapley
fonte
11
«: Set showcmd» mostra o comando atual e, portanto, a tecla líder no momento em que está ativa.
greg
4
Para a falta de feedback, embora por padrão não haja feedback visual, parece que o vim tocará uma campainha do sistema se não receber um comando nos 1000ms depois que você pressionar <leader>.
Bailey Parker
113

A "tecla Líder" é uma maneira de ampliar o poder dos atalhos do VIM usando seqüências de teclas para executar um comando. A chave líder padrão é a barra invertida. Portanto, se você tiver um mapa de <Leader> Q, poderá executar essa ação digitando \ Q.

Mikeage
fonte
4
\Qao mesmo tempo? ou primeiro ` release it and then Q`
Arnold Roa
9
@ArnoldRoa Sempre que os comandos vim são listados, a sintaxe ggdGsignifica pressionar essas quatro teclas sequencialmente. Uma sintaxe semelhante <C-w><C-j>significa pressionar CTRL + w, seguido por CTRL + j.
Gobernador
91

A <leader>chave do Vim é uma maneira de criar um espaço para nome para os comandos que você deseja definir. O Vim já mapeia a maioria das teclas e combinações de Ctrl+ (alguma tecla), então <leader>(some key)é onde você (ou plugins) pode adicionar um comportamento personalizado.

Por exemplo, se você freqüentemente exclui exatamente 3 palavras e 7 caracteres, pode ser conveniente mapear um comando por nmap <leader>d 3dw7xforma a pressionar a tecla líder seguida por d excluirá 3 palavras e 7 caracteres. Como ela usa a chave líder como prefixo, você pode (relativamente) ter certeza de que não está pisoteando nenhum comportamento pré-existente.

A chave padrão para <leader>é \, mas você pode usar o comando :let mapleader = ","para remapear para outra chave ( ,nesse caso).

A página da Usevim na chave do líder tem mais informações.

Pete Schlette
fonte
o link 404s fornecido.
evanb
8

No meu sistema é a \chave. é usado para comandos para que você possa combiná-lo com outros caracteres.

Arkaitz Jimenez
fonte