Caps Lock键的位置,左⼿⼩指轻松可及。其功能只是切换⼤⼩写,纯⼤写毕竟⽤得少,偶尔⼤写只需Shift加字母,更快捷。
便利的位置与鸡肋的功能,强烈的冲突下只有⼀个结果——换之⽽后快。
换哪个键并不需要太多的考虑,因为使⽤VIM、Emacs,Esc键⽤得多,这个键⼜地处北极偏远地区,交通极不⽅便,与Caps Lock互换,顺理成章。
解决⽅案
1、以下代码保存为 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,03,00,00,00,3a,00,01,00,01,00,3a,00,00,00,00,002、双击该⽂件,弹出框,选“是”;
3、重启系统,完成。
重点解读
重点分析上⾯代码中的那⼀长串⼆进制,为⽅便分析,拆分为每8位⼀⾏,并加上⾏号,结果如下:
- 00,00,00,00,
- 00,00,00,00,
- 03,00,00,00,
- 3a,00,01,00,
- 01,00,3a,00,
- 00,00,00,00
- 头两⾏和最后⼀⾏,是固定的,都是8个0。
- 第3⾏,表⽰共更改了多少个按键,本例为3个,怎么算的?从第4⾏开始,到最末尾⾏(虽然严格来说末⾏不算),每⾏算1个,4、5、6⾏,刚好3个。
- 第4⾏,前后各4位,分别代表某个按键。本例为将3a00的按键映射为0100。3a00代表CapsLock键,0100代表Esc键。
- 第5⾏,同理,0100的按键映射为3a00,即Esc映射为CapsLock。
- 第6⾏,已经讲了,末⾏,固定8个0。如果需要增加更多的映射,可以在此⾏之上,不断加类似4、5行格式的。当然,最后的结果,还是要将各⾏合为⼀⾏的。
附录
部分按键映射对照表:
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 Windows5C 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
还有⼀个特殊的值——00 00,表⽰啥也不⼲,如果要将某个按键禁⽤,只需映射为00 00。
特别说明,本⼈仅测试过CapsLock与Esc按键,其他均未测试,如有不正确的地⽅,还望告知。