有没有想过CapsLock这个键到底为啥要存在?
TODO
有多少人用这个键?
TODO
这个键的位置有多重要?
TODO
对程序员的意义何在?
既然这个键位曾经是那么重要的位置,试想一下用回来的感觉?很疯狂吗?完全不会,试试就知道了。
在常用的系统里交换这两个键还是比较容易实现的。
键盘键入反应到计算机里去,是通过将键盘上键位触发转换成电信号传送给和计算机的。比较早年代的人可能还记得有种设备叫做『电传机』
GNU/Linux
console (非X-Window)
在Linux里系统启动所使用的键盘布局文件就是我们的目标,他们位于/usr/share/keymaps
,想知道他们里面存放了什么信息吗?看着是gz的压缩,其实打开就是纯文本的文件
可以看到就是将键位信号编号对应的键位功能进行map,比较常见的有qwert的键盘,等
我们手里最常用的恐怕就是标准US布局的键盘了吧,打开/usr/share/keymaps/i386/us.map.gz
,找到58和29,将他们对应的键位交换。对应到各个发行版可能略有不同,大体思路是一致的。
某使用的是gentoo,所以建议和archlinux的wiki上一样,复制一份出来,例如叫做Caps2Control.map,保存,然后在/etc/conf.d/keymaps
里将keyboard
改成对应的名字即可
顺带
如果想即刻体验,不消待到重启后,在console下(按Ctrl+Alt+F2试试),输入dumpkeys
,就会把当前键位信息输出来;重定向到一个文件(例如MyMap.map),照上面修改一下,然后用loadkeys MyMap.map
,马上就生效了;如果觉得乱了,使用loadkeys -d
加载默认配置。
X-Window
在启动X-Window后,键位映射自动由Xorg接管,console下的配置无效了;没关系,X-Window的问题交给X下来处理:D
简而言之,使用xmodmap
,用发行版的包管理器安装一下;
使用方法很简单。
xmodmap /path/to/xmodmap_config
这里给个比较简单的配置,将CapsLock当作Control,并关闭原Ctrl的功能
更加具体的用法可以参考手册
顺带
由于这里指定了keycode,如果使用的是非标准键盘等,想查看键位编号,可以使用xev这个工具,打开后会显示最新的X事件,按下键盘就可以看到keycode了
MacOS X
系统设置里的键盘项就提供了功能,设置交换一下即可:D 一如既往的方便
MS Windows
windows下就没有自带的设置了,需要修改注册表,有兴趣的可以去网上搜一下,来满足修改其他按键的需求。
这里推荐一款软件,虽然原来的介绍里只写了XP/2000支持,但某个人实际在x64的Win7下使用也是成功的。安装打开界面上是设置,需要保存。
由于是修改注册表,需要注销用户后才生效。
就某个人换成这个习惯后,觉得CapsLock这个键位当作Control是非常好用的。虽然某算是一个vimer,时常也会使用Emacs;某自己倒是觉得Esc没那么难按,而左下Ctrl则异常痛苦!要知道,bash下最常见的key binding可是emacs的…所以学学emacs真没啥坏处,某在做翻译的时候还是喜欢用emacs,vim下切换输入法有时候乱了就全乱套了得undo好多步XDDD