参考博客:http://mingxinglai.com/cn/2013/05/change-capslock-to-esc/
在使用vim和输入法的时候,Esc按键使用的频率是非常高的(输入法主要是打错的时候用Esc取消输入),而键盘的Esc离太远,CapsLock按键又基本不用,所以正好废物利用。
将CapsLock映射成Esc,这里注意并不是交换,所以处理完成后,键盘会有两个Esc按键,原来的CapsLock功能消失。当然后面会具体介绍如何修改,如果只想修改,不求甚解,那么直接把下面的代码保存到capslock2esc.reg文件中,双击运行,重启电脑即可。
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,01,00,3a,00,00,00,00,00
这里原博客有一个问题,如果不加入 Windows Registry Editor Version 5.00这一行,在win8.1里面会提示"只能导入二进位注册文件"。从而无法起作用。
下面介绍如何修改,转自上面的博客,内容有一定的调整:
分析"Scancode Map"后面一长串数字, 为方便分析,拆分为每8位一行,并加上行号,结果如下:
00,00,00,00,
00,00,00,00,
02,00,00,00,
01,00,3a,00,
00,00,00,00
头两行和最后一行,是固定的,都是8个0。
第3行的数字表示剩余的行数,即第3行下面还有几行,如上例中还有两行,所以第 三行开头前两位为02.
第3行与最后一行中间为键位的更改,每更改一个按键占据一行,每一行前四位和后四位分别代表一个按键,意思是 把前四位代表的按键的功能映射到后四位代表的按键上。通俗点儿就是把后边的按键变成前面的按键。这里原文介绍的不是太清楚。
同样第三行前两位的数字也就是 修改的按键数+1 (加上最后一行)
还原按键时,只需要在注册表的路径([HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout])下,删除Scancode Map键即可。
部分按键映射对照表。
Escape 01 00
Tab 0F 00
Caps Lock 3A 00
Left Alt 38 00
Left Ctrl 1D 00
Left Shift 2A 00
Left Windows 5B E0
Right Alt 38 E0
Right Ctrl 1D E0
Right Shift 36 00
Right Windows 5C E0
Backspace 0E 00
Delete 53 E0
Enter 1C 00
Space 39 00
Insert 52 E0
HOME 47 E0
End 4F E0
Num Lock 45 00
Page Down 51 E0
Page Up 49 E0
Scroll Lock 46 00
我自己使用的时候不仅把CapsLock映射为Esc,又把Ctrl和Alt按键互相交换具体的注册表设置如下:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,04,00,00,00,01,00,3a,00,1d,00,38,00,38,00,1d,00,00,00,00,00
如果需要查看Mac下如何更改,请移步http://lovekaiyuan.iteye.com/blog/2276270