Вот что сработало для меня:
VSCode 1.37.1 (июль 2019 г.)
VSCodeVim v1.9
Сначала сообщите расширению VSCodeVim unhandle C-a
и C-e
. Это делегирует эти управляющие ключи VSCode вместо расширения:
// In your settings.json
"vim.handleKeys": {
"<C-a>": false,
"<C-e>": false
},
Теперь просто переназначьте эти ключи в VSCode:
// In your keybindings.json
[
{
"key": "ctrl+a", // default is Home
"command": "cursorHome",
"when": "textInputFocus"
},
{
"key": "ctrl+e", // default is End
"command": "cursorEnd",
"when": "textInputFocus"
},
{
"key": "ctrl+a", // default is Home
"command": "extension.vim_home",
"when": "editorTextFocus && vim.active && !inDebugRepl && vim.mode != 'Insert'"
},
{
"key": "ctrl+e", // default is End
"command": "extension.vim_end",
"when": "editorTextFocus && vim.active && !inDebugRepl && vim.mode != 'Insert'"
},
]
Я обнаружил, что первые две привязки работают в обычном режиме и в режиме вставки, но не в визуальном режиме (он как бы перемещает курсор, но ничего не выбирается). Последние два гарантируют, что он также работает в визуальном режиме.
Изменить: Я обнаружил, что простое удаление последнего условия vim.mode != 'Insert'
в when
работает и намного чище. Поэтому вместо сочетаний клавиш, указанных выше, просто:
// In your keybindings.json
[
{
"key": "ctrl+a",
"command": "extension.vim_home",
"when": "editorTextFocus && vim.active && !inDebugRepl"
},
{
"key": "ctrl+e",
"command": "extension.vim_end",
"when": "editorTextFocus && vim.active && !inDebugRepl"
},
]
person
Michael
schedule
01.09.2019