很久没来更新Blog了,最近俺在干啥呢?俺最近在折腾Emacs……
关于Emacs,就不多介绍了,大神级别的编辑器。在IT界就有这样的说法:世界上的程序员分为三种:一种使用Emacs,一种使用VIM,剩余的是其它……
Emacs和VIM之所以这样受程序员的喜爱,是因为两者都有高度的可定制性,以及丰富的快捷键组合。利用这些快捷键组合,让你能够手不离键盘,就能完成大多数的工作。其实,用鼠标操作神马的,效率是极其低下的……
话说Emacs中,用到最多的两个快捷键组合,就是Meta键和Ctrl键。对于我们普通的键盘,Meta键还好,离手很近。不过,对于Ctrl键,就离得比较远了…… 网上有网友推荐的做法,是用手掌去按Ctrl键,不过,这样的方法,对于普通键盘还不错,但是对于笔记本来说,也不太实用。
正规的Unix键盘的键位布局,Ctrl键应该是在现在标准键盘的Caps Lock位置的。这样,按起Ctrl键,就方便多了。
那要怎么交换这两个键的键位呢?重新买一个键盘? No!! 其实,也不用换键盘,我们完全可以用软件的方式来实现两个键位的交换。
下面是我从网上整理来的方法:
Win7下交换键位的设置
其实Win7下面,方法还比较多,一种是直接修改注册表,实现全局的替换,另外一种,是让两个键的交换,只在Emacs窗口激活的时候生效。至于哪个更好,完全根据你自己的需要。
局部替换大法
这种方法,需要用到一个辅助软件,那就是大名鼎鼎的Auto Hotkey,简称AHK. 编辑一个脚本,输入如下内容,保存,reload,即可生效:
1 | #IfWinActive emacs ; 判断当前激活的窗口是否是Emacs,这是根据窗口标题实现的,如果你的标题不一样,请替换一下 |
全局替换大法
可以利用第三方工具,或者直接在注册表中修改键位映射关系
注册表位置:[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout] 如果没有此键,就新建一个。
新建一个二进制值的Key,名叫:Scancode Map,输入如下的值:
1 | 00,00,00,00 |
前两行和最后一行,都是固定的,全部为0。第三行,表示你修改了几个键,其实我们只是改了两个键,不过最后那一行也要算进去,所以是3。
重点是在第四行和第五行。3A00,代表Caps Lock, 1D00,代表Ctrl。这一行,意思即为,将Caps Lock映射为Ctrl
第五行,就不用说了,意思刚好相反。
修改完毕后,重新登录Windows即可生效!
下面附上各个键位值的参考:
1 | Escape 01 00 |
Mac OS下交换键位设置
macOS下,非常简单,甚至不需要任何第三方软件,直接在键盘设置里面修改即可。当初我还google了一下文章,有的说需要装键盘驱动,有的说要用第三方软件,其实没那么麻烦,macOS已经有这个功能了……