Перейти к содержанию

Vim-режим

Vim-режим включает модальное редактирование ввода подсказки в стиле vim. Работают два режима: NORMAL и INSERT. Текущий режим отображается в футере, например [NORMAL].

Включение

На время сессии:

/vim

Постоянно через настройки:

~/.kodacli/settings.json
{
  "vimMode": true
}

Описание ключа — в настройках. Включить можно и через диалог /settings — параметр vimMode синхронизируется с текущей сессией.

Vim-режим работает только в интерактивном режиме и не поддерживается в ACP-сессиях.

Режимы

Режим Поведение
NORMAL Нажатия интерпретируются как команды vim
INSERT Обычный ввод текста, как без vim-режима

Из INSERT в NORMAL возвращает Esc — курсор при этом смещается влево, как в vim. Tab, , и в режиме INSERT работают как обычно: автодополнение и отправка запроса не ломаются.

Команды работают в режиме NORMAL и принимают числовой префикс-счётчик: 3w сдвинет курсор на три слова вперёд.

Команда Действие
h j k l Влево, вниз, вверх, вправо
w b e Слово вперёд, назад, к концу слова
0 В начало строки
$ В конец строки
^ К первому непробельному символу строки
gg К первой строке
G К последней строке; 5G — к строке №5
Стрелки Эквивалент h j k l

Если системная раскладка не QWERTY (например, русская), в режиме NORMAL команды vim всё равно работают: CLI сопоставляет символы с их QWERTY-позициями.

Редактирование

Команда Действие
x Удалить символ под курсором
i a Войти в INSERT до курсора / после курсора
I A Войти в INSERT в начале / в конце строки
o O Новая строка ниже / выше и вход в INSERT
dd Удалить строку
cc Заменить строку (удалить и войти в INSERT)
dw db de Удалить слово вперёд, назад, до конца слова
cw cb ce Заменить слово вперёд, назад, до конца слова
D Удалить от курсора до конца строки (аналог d$)
C Заменить от курсора до конца строки (аналог c$)
ch cj ck cl Заменить символ влево, вниз, вверх, вправо

Все команды редактирования принимают счётчик: 3dd удалит три строки, 2cw заменит два слова.

Повтор последней команды

Команда . повторяет последнее изменение с тем же счётчиком. Например, после dd нажатие . удалит следующую строку.

Практические советы

  • Vim-режим влияет только на ввод подсказки: диалоги, списки и меню работают как обычно.
  • Полный список горячих клавиш без vim-режима — на странице клавиатурные сокращения.
  • Если переключение не срабатывает, проверьте, что терминал не перехватывает нажатия — см. решение проблем.