¿Por qué es tan complicado de reasignar ESC al bloqueo de CAPS en VIM?
Pregunta
Vi los consejos de Vim Wiki y dice que para reasignar ESC al bloqueo de Caps tiene que editar el siguiente código de Windows:
REGEDIT4
[HKEY_CURRENT_USER\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,01,00,3a,00,00,00,00,00
¿Es posible reasignar ESC al bloqueo de CAPS solo agregando o modificando líneas en el _vIMRC?
Solución
Le recomiendo que use Autohotkey para esto.
Puedes hacer un cambio de tecla de acceso rápido por aplicación:
SetTitleMatchMode,2
#IfWinActive,VIM
CAPSLOCK::ESC
return
#IfWinActive
CAPSLOCK::CTRL
return
Este script, por ejemplo, establece tapas para escapar en VIM y controlar en cualquier otro lugar.
Otros consejos
No hay un identificador de tecla VIM para la tecla Capslock, por lo que debe hacerlo con un código de escaneo.
Sería como tratar de mapear la tecla CTRL o la tecla de cambio a algo: esas teclas no hacen nada por sí mismas, son modificadores clave, por lo que no pueden quedarse atrapados de la misma manera.
El mapeo debe hacerse a nivel del sistema operativo en lugar de VIM, por lo que la complicación proviene del sistema operativo. Por ejemplo, en mi máquina ubuntu tengo lo siguiente ~/.Xmodmap
:
! Esc on caps lock
remove Lock = Caps_Lock
keysym Caps_Lock = Escape
Sin embargo, no creo que el script de Regedit sea tan malo. Es un poco feo, ¡pero solo son dos líneas!
También puedes probar esto: Kileyos afilados. Cambié a Caplock y Esc con él.
También puede usar CTRL-C para escapar (disponible al menos en VIM). Que es lo que normalmente uso. Sin embargo, comúnmente intercambio el control y el bloqueo de Capslock, y lo he hecho a través de la configuración del registro en Windows y Conf Conf en Ubuntu.
Editar: como notas amables @mmontu, CTRL-C es más brutal que ESC: como se indica en Esta pregunta apropiada,
Vim no se molestará en verificar si acaba de escribir parte de una abreviatura, y no va a ejecutar los elegantes comandos automáticos para que sus complementos se hayan configurado cada vez que deja el modo de inserción
No me había dado cuenta porque mi Vimming aún no está tan avanzado.
Otra alternativa que funcionó bien para mí era usar las instrucciones encontradas eneste sitio web
Esencialmente: instale el creador de diseño de teclado de Microsoft, luego edite su código fuente para permitir la reasignación del bloqueo de capturas y cree su propio diseño personalizado.