当我使用 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
取自这里. 现在,只要你打开了 Caps Lock,Vim 就会显示 CAPS LOCK ON
更新:这是 AHK(自动热键脚本语言)的脚本。根据这次谈话仅使用 vim 是不可能创建你所描述的行为的。