2011-12-06 17 views
5

Me gustaría tener una tecla de guía izquierda y derecha. Si quiero que tanto el predeterminado \ como el , sean mis líderes, pensé que sería tan simple como agregar nnoremap , \ o nnoremap , <leader> a mi .vimrc. Pero aparentemente no. ¿Cómo hago esto?¿Cómo puedo asignar varias claves <leader> en vim?

+0

Una solución alternativa para tener una llave líder para ambas manos: use espacio. La idea vino de los archivos punto de Square, https://github.com/square/maximum-awesome – alxndr

Respuesta

9

Mi <leader> está obligado a , y esto funciona para mí:

:nmap \ , 

Todos de mis asignaciones de líderes ahora están disponibles usando \ o , como el líder. Creo que es el nnoremap lo que te hace tropezar.

+1

sí, gracias. Estaba realmente rascándome la cabeza con eso. –

+0

¿Puede editar su respuesta y hacer que no dependa de su asignación de líder actual, por [email protected] sugirió: nmamp \ aturegano

0

¿Cómo funcionaría exactamente? Vim, cuando encuentra <leader>, lo reemplaza con la clave asignada. Si usara dos (claves para <leader>), ¿cómo sabría con cuál reemplazar <leader>?

Lo que puede hacer, sin embargo, es usar <leader> y <localleader>, pero eso es solo dos líderes separados, sin asignar dos claves a uno de ellos.

Entonces, no ... no puede.

Sin embargo, puede asignar sus atajos explícitamente.

+0

Los atajos, eso es lo que intento definir. Hacer algo como '' nnoremap, \ '' no está convirtiendo ',' en '\'. Si lo hiciera, sería equivalente al mapleader, dándome efectivamente dos claves que actúan como líder. ¿Lo estoy haciendo mal? –

+1

@TheDeeno - En cierto modo, sí. Su primer mapa 'nnoremap' dice 'cada vez que presiono, reemplazo, con \ y hago ... lo que sea'. Luego viene el segundo que dice "cada vez que presiono, reemplazo, con el líder y hago ...". Uno "sobrescribe" al otro. – Rook

2

<leader> es conveniente, pero se puede crear asignaciones como ,mm o \mm sin usarlo. Sólo duplicar toda su <leader>something y reasignar con ' y \ directamente:

nnoremap <leader>d "_d 

se convertiría en

nnoremap ,d "_d 
nnoremap \d "_d 
2

Puede asignar una clave de líder a la otra, como en la respuesta aceptada, pero si va a usar <leader> en primer lugar, debe hacer la vinculación a <leader>. De esta forma, la vinculación seguirá funcionando si cambia (o elimina) la primera clave del líder.

map , <leader> 

Tenga en cuenta que esto todavía no bastante trabajo como un segundo líder. Si el primer líder no está configurado, el enlace seguirá funcionando, pero Vim también volverá a usar \ como líder, ya que ya no existe un líder "oficial" (es decir, un valor válido para la variable mapleader). (Esto no sería un problema para el OP, pero puede ser para otros.)

+0

Esta es la respuesta más precisa porque no depende de la clave del líder actual que está utilizando. – aturegano

Cuestiones relacionadas