如何在 Windows Cygwin shell 中将 Capslock 键重新映射到 ESC?
理想情况下,我只会在 Cygwin shell 中重新映射值,而不是在所有地方重新映射,从而保留其他应用程序中的行为(尽管不可否认,即使在 Windows 中,我认为我可能更频繁地意外而不是故意按下 Capslock 键)。
更好的是,我可以添加一些内容到我的 bashrc 中,使其易于移植。
背景:我大部分时间都在 Linux 上使用 xmodmap(例如,http://vim.wikia.com/wiki/Map_caps_lock_to_escape_in_XWindows) 将 Capslock 重新映射到 Esc,以提高 vi 的速度和舒适度。这在这些系统上的任何地方都很好用,即在 vim 中以及在 bash 命令行中。其余时间,当我在 Windows 机器上使用 Cygwin 时,我的肌肉记忆让我按下 capslock 键,效果不佳!
答案1
我通过注册表修改在系统范围内进行重新映射,概述如下http://vim.wikia.com/wiki/Map_caps_lock_to_escape_in_Windows。
在同一页面上,还有一个自动热键解决方案。
您可以限制自动热键像这样的重新映射应该(未经测试!)限制为 Windows 控制台窗口:
#IfWinActive ahk_class ConsoleWindowClass
CapsLock::
...
如果你使用新的基于 Mintty 的Cygwin 终端,这将专门适用于 Cygwin。(但我还是建议您首先尝试系统范围的重新映射;我已将其Caps Lock作为Scroll Lock后备,但我很少使用它。)
答案2
我不知道如何在 Cygwin 中重新映射 Capslock。但在 Windows 7 中全局重新映射
CapsLock 改为 Esc 只需添加一个注册键:
[HKEY_CURRENT_USER\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
CapsLock 变为 Ctrl:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,1d,00,3a,00,00,00,00,00
使用 Current_User 或 Local_Machine,以更好地满足您的需求。
其他映射