利用AutoHotKey实现VI编辑模式下ESC键自动切换至英文输入法

利用AutoHotKey实现ESC自动切换输入法。


最近学习VIM,然而大多数情况下都是用的各种编辑器的VIM模式,我一般不会去使用GVim。然而每次的输入法切换非常影响键入。因此在知乎上搜索到了如下的解决方案:

#Persistent ;一直运行
~esc::

Send, {ESC}

; 下方代码可只保留一个
SwitchIME(0x04090409) ; 英语(美国) 美式键盘
SwitchIME(0x08040804) ; 中文(中国) 简体中文-美式键盘
return


SwitchIME(dwLayout){
    HKL:=DllCall("LoadKeyboardLayout", Str, dwLayout, UInt, 1)
    ControlGetFocus,ctl,A
    SendMessage,0x50,0,HKL,%ctl%,A
}

作者:杜立涛 链接:https://www.zhihu.com/question/41446565/answer/91110371 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 不过这个还存在一些不方便的地方,看以后我是渐渐习惯了这些麻烦还是自己又继续来深入AutoHotKey:

  • 重新回到INSERT模式时,我希望回到中文输入法
  • 在不是编辑器的窗口里,我希望ESC键是一个正常的功能