如何在 Cygwin 中将 CAPSLOCK 键重新映射到 ESC?

如何在 Cygwin 中将 CAPSLOCK 键重新映射到 ESC?

如何在 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,以更好地满足您的需求。

其他映射

相关内容