jj
因此,我喜欢 vim 并使用的键映射Esc
。
有没有办法在 Mac OS X 的全局层面上进行jj
映射Esc
?
我试过了更好的触摸工具我可以有全局键映射,但它们不支持多个键的映射(例如jj
),而只是支持类似的映射ctrl+j
。
PS. 动机:
在光桌有一个 Vim 插件。但是,由于 CodeMirror 的一个缺点,您无法添加多个键的键映射(例如jj
)。(https://github.com/LightTable/LightTable/issues/923)
答案1
我也喜欢 vim!我正在寻找非常相似的东西(我用过,jk
但有些不同)。
我想到了!
TL;DR 你想使用登山扣应用程序
一开始有点令人困惑,但他们有大量的重新映射键的选项。你要找的那个将涉及“同时按下的键”,幸运的是有一个搜索功能,所以如果你搜索“同时按下”和“退出”,你会找到几个映射到退出的键:
您会注意到,这并不完全符合我们的任何用例……您在寻找jj
,我在寻找jk
。如果您满足于重新训练您的肌肉记忆,那么ji
您已经完成了。但是,如果您仍然想坚持下去jj
,您将需要执行一些额外的步骤。
幸运的是,将您自己的自定义重新映射添加为 xml 文件相对简单。您的 Karabiner 安装应该附带一个private.xml
位于/Users/Username/Library/Application Support/Karabiner
(应该能够使用 Spotlight 快速找到它)的文件。该文件最初非常简单,因此您可以用您想要的任何类型的新映射来填充它。您可以查看有关如何执行此操作的文档这里。
对于您想要的,您只需要用以下内容替换那里的内容:
<?xml version="1.0"?>
<root>
<item>
<name>Stephen Custom Keyboard mappings</name>
<appendix></appendix>
<item>
<name>SimultaneousKeyPresses</name>
<item>
<name>J and K to escape</name>
<appendix>(J+K to Escape)</appendix>
<identifier>private.j_k_to_escape</identifier>
<autogen>__SimultaneousKeyPresses__ KeyCode::J, KeyCode::K, KeyCode::ESCAPE</autogen>
</item>
</item>
</item>
</root>