Visual Studio Code - "Добавить выделение, чтобы найти следующее совпадение", теряющее выделение при включенной карте ключей
У меня новая установка Visual Studio Code (конфигурация по умолчанию, с картой ключей vim). Я хочу использовать команду "добавить выбор, чтобы найти следующее совпадение". Я думаю, что это эквивалентно тому, как мультикурсоры работают в возвышенном тексте и vim ( с расширением) или Atom (найти и заменить: выберите далее).
Когда я пытаюсь запустить команду напрямую с помощью Ctrl D
это не работает, перенося меня на последнюю строку в файле. Это может быть какой-то конфликт, который может быть легко разрешен.
Более интересно, когда я запускаю команду из командной палитры Ctrl Shift P
,
- Первый раз выбираю слово, на котором я нахожусь (молодец!)
- Второй раз выбирает следующее вхождение этого слова, но теряет выделение, перемещая два курсора сразу после двух первых вхождений слова.
- В третий раз и в следующий раз ничего не происходит, выбор был потерян в предыдущий раз.
Как получить нормальное поведение, которое есть у других редакторов?
PD: Теперь я подтвердил, что это поведение отсутствует без таблицы ключей vim. Могут ли они быть как-то совместимы?
1 ответ
Ctl + D - это стандартная комбинация клавиш Vim, которая прокручивает окно вниз в буфере. Это ожидаемое поведение для расширения Vim, и вам следует отключить отображение, если вы хотите использовать его для запуска команды VSCode "Добавить выбор для поиска следующего соответствия".
Для этого откройте настройку расширения, нажав " Файл"> "Настройки"> "Расширения". Оттуда выберите расширение Vim и выберите параметр " Настроить параметры расширения". Будет опция, называемая Handle Keys, где вы можете вводить данные JSON для отправки определенных комбинаций клавиш обратно в VSCode (и есть другая опция для отключения всех комбинаций Ctl + Letter, называемая Use Ctrl Keys). Вы можете найти некоторые примеры таких данных на странице Marketplace расширения. Ниже приведен фрагмент кода, который я добавил в свой settings.json
файл, чтобы получить Ctl + D обратно.
"vim.handleKeys": {
"<C-d>": false
}
Из моего тестирования похоже, что изменение этого параметра также исправляет поведение при использовании палитры команд. Это может быть ошибкой, но кого это волнует, когда вы, скорее всего, просто собираетесь использовать Ctl + D?:)