在 Windows 中,如果想在 vim 中将大写键 Caps 更改为 Esc 键,是无法使用 vim 脚本提供的命令进行修改,因此,只能通过更改系统按键(注册表)或者拦截按键事件进行转换。
对于第一种更改系统按键,对于 Windows 就是要修改注册表,但是这样做的话,效果同样会影响到其它的应用。
而采用第二种方法,我们既可以让它全局生效,也可以指定更改按键行为只发生在特定应用中。甚至于,借助跨平台按键修改工具,可以使得我们的按键更改行为在不同的平台上都能使用。
我们这边使用的按键修改工具为:AutoHotKey
下面我们编写一个按键脚本,让它只在 vim 中将 Caps 键替换为 Esc 键:
- 下载安装 AutoHotKey
- 鼠标右键 - 新建 - AutoHotKey Script,重命名为 cpas2esc.ahk,然后输入如下内容:
classname = ""
keystate = ""
*Capslock::
WinGetClass, classname, A
if (classname = "Vim")
{
SetCapsLockState, Off
Send, {ESC}
}
else
{
GetKeyState, keystate, CapsLock, T
if (keystate = "D")
SetCapsLockState, Off
else
SetCapsLockState, On
return
}
return
- 双击执行 cpas2esc.ahk,这样,在 vim 中按下 Caps 键就会被拦截转换成 Esc 键。
更多详细信息,请查看:Map caps lock to escape in Windows
网友评论