[VIM]将Caps Lock同时映射成Ctrl和Esc

四 19 2016 Published by under Linux/Ubuntu, Mac, Windows

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



No responses yet

发表评论