2009-11-19 36 views
835

Veo <leader> en muchos archivos .vimrc, y me pregunto ¿qué significa? ¿Para qué se usa esto? Solo una descripción general del propósito y el uso sería genial.¿Qué es el <leader> en un archivo .vimrc?

+4

Me doy cuenta de que creo que la clave es que al usar '' en los accesos directos de su teclado está creando efectivamente un espacio de nombres para que sus accesos directos personalizados no interfieran en el comportamiento de vim incorporado.Consulte la respuesta de @Pete Schlette a continuación para obtener más información. – User

Respuesta

750

La clave <Leader> se ha asignado a \ de forma predeterminada. Por lo tanto, si tiene un mapa de <Leader>t, puede ejecutarlo de manera predeterminada con \ + t. Para obtener más detalles o re-asignación utilizando la variable mapleader, ver

: ayuda líder

 
To define a mapping which uses the "mapleader" variable, the special string 
"<Leader>" can be used. It is replaced with the string value of "mapleader". 
If "mapleader" is not set or empty, a backslash is used instead. 
Example: 
    :map <Leader>A oanother line <Esc> 
Works like: 
    :map \A oanother line <Esc> 
But after: 
    :let mapleader = "," 
It works like: 
    :map ,A oanother line <Esc> 

Note that the value of "mapleader" is used at the moment the mapping is 
defined. Changing "mapleader" after that has no effect for already defined 
mappings. 


+32

El cambio a ',' es bueno. Mucho más fácil de alcanzar que '\\', y ¿quién usa ',' en vim de todos modos? –

+0

Gracias por la ayuda, esto definitivamente me señala la dirección correcta. –

+21

@Gabe Moothart. : h, te da "Repetir las últimas f, t, F o T en dirección opuesta [conteo] veces". Es bastante conveniente. –

98

La "tecla Líder" es una forma de ampliar la potencia de los accesos directos de VIM utilizando secuencias de teclas para realizar un comando. La tecla predeterminada del líder es la barra invertida. Por lo tanto, si tiene un mapa de < Líder> Q, puede realizar esa acción escribiendo \ Q.

+2

'\ Q' al mismo tiempo? o primero '\' soltarlo y luego 'Q' –

+3

@ArnoldRoa Siempre que se enumeren los comandos vim, la sintaxis' ggdG' significa presionar esas cuatro teclas secuencialmente. Una sintaxis como '' significa presionar CTRL + w, seguido de CTRL + j. – gobernador

6

En mi sistema es la clave \. se usa para comandos para que pueda combinarlo con otros caracteres.

189

Tenga en cuenta que cuando usted pulsa el <leader> clave sólo tiene 1000ms (por defecto) a ingrese el comando siguiéndolo.

Esto se agrava porque no comentarios visuales (de forma predeterminada) que ha presionado su <leader> tecla y vim está esperando el comando; y entonces tampoco hay una forma visual de saber cuándo ha pasado este tiempo de espera.

Si agrega set showcmd a su vimrc entonces verá su clave <leader> aparecerá en la esquina inferior derecha de vim (a la izquierda de la posición del cursor) y quizás más importante, verá que desaparecer cuando el tiempo sucede afuera.

La duración del tiempo de espera también se puede establecer en su vimrc, consulte :help timeoutlen para obtener más información.

+4

«: set showcmd» muestra el comando actual, por lo tanto, la tecla principal la hora en que está activo. – greg

+7

gracias por 'set showcmd'! Realmente extrañé eso de emacs – Steen

+1

Gracias por 'set showcmd'. Es útil para mí en mi nivel de principiante. –

51

La clave <leader> de Vim es una forma de crear un espacio de nombres para los comandos que desea definir. Vim ya mapea la mayoría de las teclas y combinaciones de Ctrl+(some key), por lo que <leader>(some key) es donde usted (o los complementos) pueden agregar un comportamiento personalizado.

Por ejemplo, si se encuentra eliminando con frecuencia exactamente 3 palabras y 7 caracteres, puede resultarle conveniente mapear un comando a través del nmap <leader>d 3dw7x, de modo que al presionar la tecla directriz seguida de d se eliminarán 3 palabras y 7 caracteres. Debido a que usa la tecla líder como prefijo, puede estar (relativamente) seguro de que no está pisoteando ningún comportamiento preexistente.

La clave por defecto para <leader> es \, pero se puede utilizar el comando :let mapleader = "," para volver a asignar a otra tecla (, en este caso).

Usevim's page on the leader key tiene más información.