我如何使大写锁定工作像Esc在Mac OS X?


当前回答

Seil尚未在macOS Sierra (10.12 beta)上使用。因此,我一直在使用键盘大师与这些设置:

这条github评论的出处:https://github.com/tekezo/Seil/issues/68#issuecomment-230131664

其他回答

我知道怎么做的唯一一件事是将大写锁定映射到控制,或选项,或命令。这可以通过系统首选项的键盘和鼠标面板来完成。点击左下角的“修改键”,你就可以将“大写锁定”、“控制”、“选项”和“命令”重新映射到其中任何一个。

@Craig: 这表明,Caps Lock可以用作普通的(即非切换键)键。在我的MacBook上,由于我将“Caps Lock”重新映射为“Control”,“Caps Lock”指示灯就再也亮不起来了。它就像Control键一样。

In order to actually swap the escape key with the caps lock key (not just map one to the other) using both PCKeyboardHack and KeyRemap4MacBook, you have to follow the instructions in this thread, mapping the caps lock key to a keycode not used by the keyboard but accounted for by KeyRemap4MacBook (eg. 110). Then, in PCKeyboardHack, select the appropriate option that maps that keycode to escape (in the case of 110, it's "Application Key to Escape"). Here's what your KeyRemap4MacBook preferences should look like (provided you've selected the "show enabled only" checkbox).

我最初试图发布这个信息作为cwd的优秀答案的编辑,但它被拒绝了。我鼓励任何想要走我描述的路线的人先读一下他/她的回答。

这是有可能的。

解决方案1

摘自trueintimacy网站上的一篇文章。

下载并安装PCKeyboardHack。 进入系统首选项中的PCKeyboardHack。 启用“Change Caps Lock”并设置键码为53。

解决方案2

这个解决方案不涉及修补键盘驱动程序,而是提供了一个特定于Vim的解决方案。

OS X支持将大写锁键映射到一大堆键,但你必须“手动”,编辑.plist文件。本文描述了这个过程。作为提示的补充,我建议你首先在系统首选项中将Caps-Lock设置为None,然后你只需要更改.plist文件中的一个值。当然,您也可以使用属性列表编辑器,而不是执行XML转换步骤。

诀窍是将“Caps Lock”键映射到“Help”键(代码6),这在大多数键盘上都没有。但如果它是,它将被视为插入键,你可能不会使用它,因为你要求重新映射你的Caps Lock以防止伸展你的手;)

然后你可以在vim中将帮助键和插入键映射为Esc键。

map  <Help> <Esc>
map! <Help> <Esc>
map  <Insert> <Esc>
map! <Insert> <Esc>

这将适用于gvim (Vim.app)。我没有让它与终端中的vim一起工作,我也没有用MacVim测试它。

因此,这是一个相当复杂的、不成熟的解决方案,或者安装一个第三方的黑客。你自己选;)

编辑:刚刚注意到解决方案3,如果你使用MacVim,你可以使用Ctrl,选项和命令作为Esc。使用系统首选项,将Caps Lock映射到其中一个键是很简单的。

Seil尚未在macOS Sierra (10.12 beta)上使用。因此,我一直在使用键盘大师与这些设置:

这条github评论的出处:https://github.com/tekezo/Seil/issues/68#issuecomment-230131664

您还可以使用DoubleCommand来重新映射这个键和其他键。

IIRC,它会将Caps Lock映射为Esc。