1. 程式人生 > >Caps Lock 與 Esc 按鍵互換

Caps Lock 與 Esc 按鍵互換

Caps Lock鍵的位置,左手小指輕鬆可及。其功能只是切換大小寫,純大寫畢竟用得少,偶爾大寫只需Shift加字母,更快捷(不包含每次按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,00

2、雙擊該檔案,彈出框,選“是”;

3、重啟系統,完成。

重點解讀

重點分析上面程式碼中的那一長串二進位制,為方便分析,拆分為每8位一行,並加上行號,結果如下:

1. 00,00,00,00,
2. 00,00,00,00,
3. 03,00,00,00,
4. 3a,00,01,00,
5. 01,00,3a,00,
6. 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行格式的。當然,最後的結果,還是要將各行合為一行的。

附錄

部分按鍵對映對照表,需要檢視全部對照,請點選相關資料4。

Escape01 00
Tab0F 00
Caps Lock3A 00
Left Alt38 00
Left Ctrl1D 00
Left Shift2A 00
Left Windows5B E0
Right Alt38 E0
Right Ctrl1D E0
Right Shift36 00
Right Windows5C E0
Backspace0E 00
Delete53 E0
Enter1C 00
Space39 00
Insert52 E0
HOME47 E0
End4F E0
Num Lock

45 00
Page Down51 E0
Page Up49 E0
Scroll Lock46 00

還有一個特殊的值——00 00,表示啥也不幹,如果要將某個按鍵禁用,只需對映為00 00。

特別說明,本人僅測試過CapsLock與Esc按鍵,其他均未測試,如有不正確的地方,還望告知。