我不知道从什么时候染上了坏习惯,保存文件时会不自觉地连续Ctrl-S。我是不是患上了强迫症…
直到有一天,小黑(ThinkPad)的左Ctrl彻底没了反应。没办法,只能键位映射了。
我没有采用 AHK 这类工具来映射,而是选择直接透过操作系统来达到目标。
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,1d,e0,1d,00,3a,00,\
00,00,00,00
简单解释下上面注册表键值的含义,以免日后我自己迷糊:
在 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout
下新建 二进制值 Scancode Map
,值如下:
00 00 00 00 00 00 00 00
03 00 00 00 3a 00 1d e0
1d 00 3a 00 00 00 00 00
其值的含义是这样的:
- 从后向前,两组两组的读;
- 第一组:
00 00
00 00
,固定格式,算第一个键位映射; - 第二组:
3a 00
1d 00
,其中3a 00
是Caps Lock
,1d 00
是Left Ctrl
,表示用Caps Lock
替换掉Left Ctrl
——即按下Caps Lock
时,系统应该把它当作Left Ctrl
被按下。这是第二个键位映射; - 第三组:
1d e0
3a 00
,其中1d e0
是Right Ctrl
,表示用Right Ctrl
替换掉Caps Lock
。这是第三个键位映射; - 有需要了自己再向里面添加映射;
- 映射个数:
03
00 00 00
,配置完所需的全部映射后,需要写下累计设置的映射个数。这个示例中我一共配置了3组映射。注意,由于第一组映射是固定的,所以映射个数这个字段的最小值为1; - 固定的开头:
00 00 00 00 00 00 00 00
; - 打完收功。
对了,键位映射会在重启电脑后生效。