在 Mac 上将 jj 全局映射到 Esc

在 Mac 上将 jj 全局映射到 Esc

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>

相关内容