gvim 将 Caps 键更改为 Esc

在 Windows 中,如果想在 vim 中将大写键 Caps 更改为 Esc 键,是无法使用 vim 脚本提供的命令进行修改,因此,只能通过更改系统按键(注册表)或者拦截按键事件进行转换。

对于第一种更改系统按键,对于 Windows 就是要修改注册表,但是这样做的话,效果同样会影响到其它的应用。

而采用第二种方法,我们既可以让它全局生效,也可以指定更改按键行为只发生在特定应用中。甚至于,借助跨平台按键修改工具,可以使得我们的按键更改行为在不同的平台上都能使用。

我们这边使用的按键修改工具为:AutoHotKey

下面我们编写一个按键脚本,让它只在 vim 中将 Caps 键替换为 Esc 键:

  1. 下载安装 AutoHotKey
  2. 鼠标右键 - 新建 - 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
  1. 双击执行 cpas2esc.ahk,这样,在 vim 中按下 Caps 键就会被拦截转换成 Esc 键。

更多详细信息,请查看:Map caps lock to escape in Windows

你可能感兴趣的:(gvim 将 Caps 键更改为 Esc)