Caps Lock算是最不常用按键之一,占着相当好的地理位置。
Esc和Ctrl则是Vim用户(及其他用户)相当常用的按键,却位处于偏远的左上角及左下角。
好在Ctrl是组合按键,Esc是单独按键,那么就可以将Ctrl和Esc同时映射到一个键上,单独按时,响应为Esc,和其他键一起按时响应为Ctrl。
映射到哪个键上呢?当然是位置好又没什么用的Caps Lock了。
Linux:
用super-caps解决。
Super-caps依赖xmodmap和xcape,其中xcape需要手动安装,然后执行super-caps.sh即可。
该脚本有时会失效,重新执行即可。执行前应
setxkbmap -layout us
清除xmodmap的配置(如果是us键位布局的话),
pkill xcape
杀死xcape。
OS X:
用karabiner实现。
首先在System Preferences - Keyboard - Modifier Keys将Caps Lock映射为Ctrl,再在Karabiner中选中
Control_L to Control_L (+ when you type Control_L only, send Escape)
即可。
Windows:
用AutoHotKey实现:
; Author: fwompner gmail com #InstallKeybdHook SetCapsLockState, alwaysoff Capslock:: Send {LControl Down} KeyWait, CapsLock Send {LControl Up} if ( A_PriorKey = "CapsLock" ) { Send {Esc} } return
更多可参考这篇wiki。
本文链接地址: [VIM]将Caps Lock同时映射成Ctrl和Esc
2ozgd0