Когда я работаю с Vim, я почти никогда не смотрю на клавиатуру (как и положено!), и это здорово, но иногда я неосознанно нажимаю клавишу CapsLock, и это заставляет меня кричать на экран.
Потому что, знаете ли, j
это не то же самое, что J
в обычном режиме (и так далее).
Поэтому вместо того, CapsLock
чтобы Ctrl
отображать сообщение об ошибке, я хочу отобразить его в обычном режиме, если это так.
Есть ли способ, с помощью которого Vim определит, включена ли эта CapsLock
опция?
Примечание: я предпочитаю решение VimScript/VimL из-за портативности и потому, что я хочу, чтобы Vim уведомлял меня и не зависел от реальной системы.
решение1
Вы можете использовать такой скрипт:
; 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
Взято изЗдесь. Теперь Vim будет отображать CAPS LOCK ON всякий раз, когда включен Caps Lock.
Обновление: А это скрипт для AHK (автоматический язык сценариев горячих клавиш). Согласноэтот разговорневозможно создать описанное вами поведение, используя только vim.