Как использовать vim (привязки ключей) с расширением vim Visual Studio Code vim

Я только начал использовать Visual Studio Code и считаю, что это действительно здорово. Также установлено расширение vim, но я борюсь с отображением esc на другой ключ.

Обычно у меня это:

:imap jj <Esc>

И я вижу, что VS Code имеет файл keybindings.json. Я попробовал это:

[{
    "key": "jj",
    "command": "vim.Esc",
    "when": "editorTextFocus"
}]

Также есть файл settings.json, поэтому я попробовал:

{
  "vim.keyboardLayout": "en-US (QWERTY)",
    "vim.insertModeKeyBindings": {
        "j": "vim.Esc"
    }
}

И не работал. Так кто-нибудь знает, как использовать расширение vim с VS Code, где я могу сопоставить jj с Esc или что-то еще с Esc возможно?

Ответ 1

Я один из разработчиков VSCodeVim. Я настоятельно рекомендую задавать вопросы либо на нашем слабом канале, либо через нашу страницу проблем (вы можете найти их на README в Github).

Для завершения, вот ответ на ваш вопрос:

Добавьте следующие параметры в settings.json (откройте "Пакет команд" и выполните поиск "Настройки пользователя"):

"vim.insertModeKeyBindings": [
     {
         "before": ["j", "j"],
         "after": ["<esc>"]
     }
]

Это должно сделать это.

Ответ 2

Из этой проблемы я узнал, что вы можете использовать что-то вроде

{ "key": "j j", "command": "extension.vim_esc", "when": "editorTextFocus" },

Но это связано с проблемой неспособности использовать j для перемещения.

PS. Я знаю, что это не полный ответ, а что-то, что нужно сделать.

Ответ 3

Если вы работаете в Linux и используете setxkbmap для переназначения Esc на Caps-Lock и возникают проблемы, я предлагаю следующее решение Fix для переназначения Esc.

Решение состоит в том, чтобы добавить в пользовательские настройки следующее:

"keyboard.dispatch": "keyCode"

После этого вы должны сохранить и перезапустить enter image description here