¿Qué es el <leader> en un archivo .vimrc?

1071

Veo <leader>en muchos .vimrcarchivos, y me pregunto qué significa.

¿Para qué se usa esto?

Solo una descripción general del propósito y uso sería genial.

Bob Martens
fuente
10
Me estoy dando cuenta de que creo que la comprensión clave es que al usar <leader>los atajos de teclado está creando efectivamente un espacio de nombres para que sus atajos personalizados no pisen el comportamiento de vim incorporado. Consulte la respuesta de @Pete Schlette a continuación para obtener más información.
Usuario
3
Si desea verificar cuál <leader>es, use :echo mapleadero :let mapleader. Si no está definido, utilizará el valor predeterminado, que es una barra invertida"\"
wisbucky

Respuestas:

985

La <Leader>clave está asignada \de forma predeterminada. Entonces, si tiene un mapa de <Leader>t, puede ejecutarlo de forma predeterminada con \+ t. Para obtener más detalles o reasignarlo usando la mapleadervariable, vea

: líder de ayuda

Para definir una asignación que utiliza la variable "mapleader", la cadena especial
Se puede usar "<Líder>". Se reemplaza con el valor de cadena de "mapleader".
Si "mapleader" no está configurado o está vacío, se usa una barra invertida en su lugar.  
Ejemplo:
    : map <Leader> Una otra línea <Esc>
Funciona como:
    : mapa \ Una otra línea <Esc>
Pero después:
    : let mapleader = ","
Funciona como:
    : mapa, una línea más <Esc>

Tenga en cuenta que el valor de "mapleader" se usa en el momento en que se realiza la asignación
definido. Cambiar "mapleader" después de eso no tiene ningún efecto para los ya definidos
mapeos.


Vereb
fuente
48
El cambio a ,es bueno. Mucho más fácil de alcanzar que \\ , ¿y quién lo usa ,en vim de todos modos?
Gabe Moothart el
41
@Gabe Moothart. : h, te da "Repite las últimas f, t, F o T en dirección opuesta [cuenta] veces" Es bastante conveniente.
Maxim Kim el
10
También hay aa buena valoración crítica aquí: stevelosh.com/blog/2010/09/coming-home-to-vim/#using-the-leader
Sukotto
66
Me gusta el espacio (' ')como tecla líder porque puedo presionarlo con cualquier mano, haciendo que la tecla de seguimiento (ya sea en el lado izquierdo o derecho del teclado) sea igualmente rápida de disparar después. Tener una tecla líder que solo está en un lado del teclado hace que presionar las teclas de seguimiento en el mismo lado del teclado se sienta un poco más engorroso. Nitpicky, lo sé. :)
jefflunt
3
@jefflunt Mi pulgar derecho ya es semana porque nunca lo he usado para escribir. Así que solo uso el pulgar izquierdo para golpear espacios. Supongo que esa clave de líder espacial no me proporciona el mismo beneficio.
off99555
263

Tenga en cuenta que cuando presiona su <leader>tecla , solo tiene 1000 ms (de forma predeterminada) para ingresar el comando que le sigue.

Esto se exacerba porque no hay retroalimentación visual (por defecto) que haya presionado su <leader>tecla y vim está esperando el comando; así que tampoco hay una forma visual de saber cuándo ha pasado este tiempo de espera.

Si agrega set showcmda su vimrc, verá que su <leader>clave aparece en la esquina inferior derecha de vim (a la izquierda de la ubicación del cursor) y quizás lo más importante será que desaparecerá cuando se agote el tiempo de espera.

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

davetapley
fuente
11
«: Set showcmd» muestra el comando actual, por lo tanto, la tecla líder el tiempo que está activo.
greg
44
A falta de retroalimentación, mientras que por defecto no hay retroalimentación visual, parece que vim sonará una campana del sistema si no recibe un comando en los 1000 ms después de presionar <leader>.
Bailey Parker
113

La "tecla Líder" es una forma de extender el poder de los atajos de VIM mediante el uso de secuencias de teclas para ejecutar un comando. La clave líder predeterminada es la barra invertida. Por lo tanto, si tiene un mapa de <Leader> Q, puede realizar esa acción escribiendo \ Q.

Mikeage
fuente
44
\Q¿al mismo tiempo? o primera ` release it and then Q`
Arnold Roa
99
@ArnoldRoa Cuando se enumeran los comandos vim, la sintaxis ggdGsignifica presionar esas cuatro teclas secuencialmente. Una sintaxis como <C-w><C-j>significa presionar CTRL + w, seguido de CTRL + j.
gobernador
91

La <leader>clave de Vim es una forma de crear un espacio de nombres para los comandos que desea definir. Vim ya asigna la mayoría de las teclas y combinaciones de Ctrl+ (algunas teclas), 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 ser conveniente asignar un comando a través de nmap <leader>d 3dw7xmodo que al presionar la tecla líder seguida de d se eliminen 3 palabras y 7 caracteres. Debido a que utiliza la clave líder como prefijo, puede estar (relativamente) seguro de que no pisoteará ningún comportamiento preexistente.

La clave predeterminada para <leader>es \, pero puede usar el comando :let mapleader = ","para reasignarla a otra clave ( ,en este caso).

La página de Usevim en la clave de líder tiene más información.

Pete Schlette
fuente
el enlace proporcionado 404s.
evanb
8

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

Arkaitz Jiménez
fuente