Как пользоваться историей команд в Vim

Vim хранит историю введённых команд, так же как shell. Это удобно, когда вы повторяете часто используемые команды или хотите поправить недавно введённую строку. Ниже — краткое руководство, шпаргалка и рекомендации по ошибкам.
Быстрый доступ к командам
- Выйдите в нормальный режим нажатием Escape.
- Нажмите : чтобы войти в режим командной строки.
- Нажимайте стрелки вверх и вниз, чтобы пролистывать историю.
- Нажмите Enter, чтобы выполнить выбранную команду.
Это работает аналогично истории в Bash или Zsh.
Открытие окна истории команд
Чтобы увидеть историю в отдельном окне:
- Нажмите Escape, затем : чтобы войти в режим командной строки.
- Нажмите Ctrl+F — откроется окно истории команд (полноэкранное представление).
В этом окне:
- Используйте k (вверх) и j (вниз) для навигации по записям.
- Нажмите Enter, чтобы выполнить выбранную строку.
Важно: Ctrl+F без предварительного : прокручивает экран вперед в нормальном режиме. Если вы случайно нажали Ctrl+F, а не : Ctrl+F, вы могли просто пролистнуть файл, а не открыть историю.
Закрытие окна истории без выполнения команды
Если вы открыли окно истории по ошибке или не хотите выполнять выбранную команду:
- Нажмите Ctrl+C, чтобы прыгнуть вниз к концу списка.
- Затем нажмите ещё раз Ctrl+C или Esc, чтобы закрыть окно полностью и вернуться в нормальный режим.
Это быстрый способ вернуться к редактированию, не выполняя ничего лишнего.
Шпаргалка: основные сочетания
| Действие | Действие в Vim |
|---|---|
| Войти в командную строку | Escape, затем : |
| Пролистывать историю в командной строке | Стрелки вверх/вниз |
| Открыть окно истории | В режиме команд: Ctrl+F |
| Навигация в окне истории | j / k |
| Выполнить команду из окна истории | Enter |
| Выйти без выполнения | Ctrl+C, затем Ctrl+C или Esc |
Практические советы и приемы
- Если команда длинная, нажмите стрелку вверх, отредактируйте строку и нажмите Enter — это проще, чем вводить заново.
- История хранится между сессиями, если у вас настроен viminfo или эквивалент. По умолчанию vim сохраняет историю в файле, указанном в настройках (обычно ~/.viminfo).
- Для поиска по истории в командной строке начните вводить начало команды, затем используйте стрелки — Vim отфильтрует строки по префиксу.
- Можно также искать по истории в полноэкранном окне, используя обычные команды поиска Vim (/ и ?).
Когда история команд не помогает
- Если вы использовали :! для запуска внешней команды и хотите повторить её в терминале с изменёнными аргументами, проще открыть отдельный терминал.
- Если история была очищена или viminfo не настроен, старые записи могут быть недоступны.
- При работе в плагинах, которые изменяют режим командной строки, поведение может отличаться.
Альтернативные подходы
- Настроить автодополнение командных последовательностей через плагины (например, командные подсказки).
- Использовать файлы заметок или snippets для часто используемых длинных команд.
- Записывать макросы (q + регистр) для повторения сложных последовательностей действий вместо одиночных команд.
Контроль версий и совместимость
- Если вы используете neovim, поведение окна истории схоже, но файл сохранения истории может называться иначе (например, XDG-путь для данных).
- В старых версиях Vim некоторые сочетания могли работать иначе; обновление Vim полезно для единого поведения.
Ролевые чек-листы
Разработчик:
- Проверить, сохранена ли история между сессиями.
- Использовать историю для быстрого повторения команд :make, :!pytest и т. п.
Системный администратор:
- Использовать истории для воспроизведения команд обслуживания.
- Хранить часто используемые команды в snippet-файлах, если история очищается.
Новичок в Vim:
- Практикуйтесь в навигации j/k и Esc, : и Ctrl+F.
- Не бояться закрывать окно истории Ctrl+C.
Мини-метод: повтор команды без ошибок
- Выйдите в режим команд (Escape, :).
- Найдите нужную команду стрелками или вводом первых символов.
- Отредактируйте при необходимости.
- Нажмите Enter.
- Если нужно отменить — нажмите u (откат изменений в буфере) или отмените эффект внешней команды вручную.
Часто задаваемые вопросы
Как открыть историю команд?
Нажмите Escape, затем : и используйте стрелки вверх/вниз. Для полноэкранного списка нажмите Ctrl+F в режиме команд.
Как закрыть окно истории без выполнения команды?
В окне истории нажмите Ctrl+C, затем ещё раз Ctrl+C или Esc, чтобы вернуться в нормальный режим.
Краткое резюме
История команд в Vim ускоряет повторение и исправление ранее введённых команд. Можно просматривать записи в командной строке или в отдельном окне истории, выполнять команды оттуда и быстро закрывать окно без выполнения. Настройка сохранения истории и использование сниппетов дополняют рабочий процесс.
Важно: поведением истории управляет файл viminfo или эквивалент — проверьте настройки, если история не сохраняется между сессиями.
Похожие материалы
Как записывать голос на Android качественно
Simple Budget в Notion — как вести бюджет
Как исправить: zsh: command not found: brew
DRIVER_CORRUPTED_EXPOOL: исправление в Windows 10