2

Итак, я люблю vim и использую отображение клавиш jj для Esc .

Есть ли какой-нибудь способ на глобальном уровне в Mac OS X отобразить jj на Esc?

Я попробовал Better Touch Tool, где я могу иметь глобальные сопоставления клавиш, но они не поддерживают сопоставление нескольких клавиш (например, jj), а только сопоставления типа ctrl+j .

PS. Мотивация:

В Light Table есть Vim-плагин. Однако из-за короткого появления CodeMirror вы не можете добавить сопоставления клавиш с несколькими ключами (например, jj). (https://github.com/LightTable/LightTable/issues/923)

1 ответ1

2

Мне также нравится Vim! Я искал что-то очень похожее (я использую jk но некоторые различия).

Я понял!

TL; DR Вы хотите использовать приложение Karabiner

Поначалу это немного сбивает с толку, но у них есть множество вариантов переназначения ключей. Тот, который вы ищете, будет включать "одновременные ключи", к счастью, есть поиск, так что если вы ищете "одновременный" и "побег", вы найдете пару, которая отображает карту для побега:

Скриншот Карабинер

Вы заметите, что это не совсем подходит ни для одного из наших вариантов использования, хотя ... вы ищете jj а я ищу jk . Если вы довольны переподготовкой мышечной памяти к ji значит, вы уже закончили. Если вы все еще хотите придерживаться jj , вам придется сделать несколько дополнительных шагов.

К счастью, добавить свои собственные переназначения в виде XML-файлов относительно просто. Ваша установка Karabiner должна идти с private.xml который находится в /Users/Username/Library/Application Support/Karabiner (должен быть в состоянии быстро найти его в центре внимания). Этот файл начинается довольно просто, так что вы можете заполнить его любым новым отображением, которое захотите. Вы можете ознакомиться с документацией об этом здесь.

Для того, что вы хотите, вы просто хотите заменить то, что там, на следующее:

<?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>

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .