Cuando trabajo con Vim casi nunca miro mi teclado (¡como debería ser!) y esto es genial, pero a veces, sin saberlo, presiono la tecla Bloq Mayús y me hace gritarle a la pantalla.
Porque, ya sabéis, j
no es lo mismo que J
en modo normal (y demás).
Entonces, en lugar de mapear, CapsLock
decir Ctrl
Quiero mostrar un mensaje de error que me advertirá en modo normal si este es el caso.
¿Hay alguna manera de que Vim sepa si lo ha CapsLock
habilitado?
Nota: Prefiero una solución VimScript/VimL por portabilidad y porque quiero que Vim me notifique y no dependa del sistema real.
Respuesta1
Puedes usar un script como este:
; INDICATE WHEN THE CAPS LOCK IS ON WITH A SCREEN MESSAGE
Gui, +AlwaysOnTop +ToolWindow -SysMenu -Caption
Gui, Font, caf001e s30 bold ,Verdana ;changes font color, size and font
Gui, Color, af001d;changes background color
Gui +LastFound ; Make the GUI window the last found window for use by the line below.
WinSet, TransColor,af001d
Gui, Add, Text, ,CAPS LOCK ON
; TOGGLE THE GUI ON AND OFF
~capslock::
if(0==GetKeyState("capslock","T")){
Gui, hide
}else{
if(guilocation>0){
guilocation=0
Gui, Show,x600 y800 NoActivate
}else{
guilocation=1
Gui, Show,x600 y400 NoActivate
}
}
return
Tomado deAquí. Ahora Vim mostrará BLOQ MAYÚS ON siempre que el bloqueo de mayúsculas esté activado
Actualización: Y ese es un script para AHK (lenguaje de secuencias de comandos de teclas de acceso rápido automático). De acuerdo aesta conversaciones imposible crear un comportamiento que estás describiendo usando solo vim.