Linux

Vim для начинающих: основные команды и горячие клавиши

Этот гайд научит вас пользоваться редактором Vim с нуля. Вы узнаете, как перемещаться по файлу, вносить изменения, сохранять их и выходить. После прохождения вы сможете уверенно работать в Vim для простых задач.

Обновлено 17 февраля 2026 г.
15-30 мин
Низкая
FixPedia Team
Применимо к:Vim 8.0+Neovim 0.5+Любой дистрибутив Linux

Введение / Зачем это нужно

Vim (Vi IMproved) — это мощный текстовый редактор, работающий прямо в терминале. Его знание критически важно для администрирования Linux-серверов, где часто нет графического интерфейса. Этот гайд развеет миф о сложности Vim и даст вам практические навыки для повседневной работы: редактирования конфигурационных файлов, просмотра логов, быстрых правок кода. Вы перестанете бояться черного экрана и научитесь эффективно работать без мыши.

Требования / Подготовка

  1. Установленный Vim. В большинстве дистрибутивов он предустановлен. Проверьте: vim --version. Если нет, установите: sudo apt install vim (Debian/Ubuntu) или sudo yum install vim (RHEL/CentOS).
  2. Терминал (konsole, gnome-terminal, xterm и т.д.).
  3. Базовое понимание командной строки (cd, ls).
  4. Права на запись в директорию, где будете создавать/редактировать файлы.

Шаг 1: Запуск Vim и понимание интерфейса

Откройте терминал и создайте тестовый файл:

vim test.txt

Вы увидите экран, похожий на этот:

"test.txt" [New File]
~
~
~
~
~
~
~
~

Что это значит:

  • Строка вверху ("test.txt" [New File]) — статус.
  • Тilde (~) обозначает пустые строки после конца файла.
  • Самое главное: вы находитесь в Normal mode (иногда called Command mode). В этом режиме каждая нажатая клавиша — это команда Vim, а не символ для ввода. Если вы начнете печатать, ничего не появится. Это нормально.

Шаг 2: Переключение в режим вставки (Insert mode)

Чтобы начать редактировать текст, нужно перейти в Insert mode.

  1. Нажмите клавишу i (латинская i).
  2. Внизу экрана появится подсказка -- INSERT --.
  3. Теперь печатайте текст как в обычном редакторе. Например, введите: Привет, мир! Это мой первый файл в Vim.

Быстрые варианты входа в Insert mode:

  • i — вставить перед курсором (самый частый).
  • I — вставить в начало текущей строки.
  • a — вставить после курсора.
  • A — вставить в конец текущей строки.
  • o — создать новую строку ниже текущей и перейти в Insert mode.
  • O — создать новую строку выше текущей.

Шаг 3: Навигация по файлу без мыши

Когда закончили ввод, нажмите Esc — вы вернетесь в Normal mode. Теперь управляйте курсором:

Базовые движения (одна клавиша):

h — влево
j — вниз
k — вверх
l — вправо

Быстрые перемещения:

  • w — перейти к началу следующего слова.
  • b — перейти к началу предыдущего слова.
  • 0 (ноль) — в начало строки.
  • $ — в конец строки.
  • gg — в самое начало файла.
  • G (Shift+g) — в самый конец файла.
  • :n или nG — перейти на строку номер n (например, :15 или 15G).
  • /текст + Enter — поиск вперед. n — следующее совпадение, N — предыдущее.
  • ?текст + Enter — поиск назад.

💡 Совет: Практикуйте движения hjkl 5 минут в день. Это основа скорости в Vim.

Шаг 4: Редактирование: удаление, отмена, копирование, вставка

Все действия выполняются в Normal mode.

Удаление:

  • x — удалить символ под курсором.
  • dd — удалить (вырезать) всю текущую строку.
  • dw — удалить слово, начиная с курсора.
  • d$ или D — удалить от курсора до конца строки.
  • dgg — удалить от текущей строки до начала файла.

Отмена и повтор:

  • u — отменить последнее изменение (undo).
  • Ctrl + r — повторить отмененное изменение (redo).

Копирование (yank) и вставка (put):

  • yy — скопировать (yank) текущую строку.
  • yw — скопировать слово.
  • y$ — скопировать от курсора до конца строки.
  • p — вставить (put) скопированное после курсора/строки.
  • P (Shift+p) — вставить перед курсором/строкой.

Визуальный режим для выделения: Нажмите v (визуальный символьный режим) или V (визуальный режим строк). Перемещайтесь курсором (hjkl), чтобы выделить область. Затем:

  • y — скопировать выделенное.
  • d — удалить (вырезать) выделенное.
  • > — сдвинуть выделенное вправо (отступ).
  • < — сдвинуть влево.

Шаг 5: Сохранение и выход

Все команды сохранения/выхода начинаются с двоеточия : и выполняются в Normal mode.

  1. Убедитесь, что вы в Normal mode (нажмите Esc).
  2. Введите:
    • :w + Enter — сохранить (write) файл.
    • :q + Enter — выйти (quit), если нет несохраненных изменений.
    • :wq или :x или ZZ — сохранить и выйти.
    • :q! — выйти без сохранения изменений (принудительно).
    • :w имя_файла — сохранить текущий буфер под другим именем ("Save As").

Шаг 6: Работа с несколькими файлами и buffers

Vim может работать с несколькими файлами одновременно.

  • :e имя_файла — открыть (edit) другой файл в текущем окне. Текущий буфер сохранится автоматически, если были изменения? Нет, нужно сохранить явно :w или использовать :enew для нового файла.
  • :bn — перейти к следующему буферу (buffer next).
  • :bp — перейти к предыдущему буферу.
  • :ls — список всех открытых buffers.
  • :b n — перейти к буферу с номером n (из списка :ls).

Проверка результата

  1. Откройте тестовый файл: vim test.txt.
  2. Перейдите в Insert mode (i), добавьте новую строку.
  3. Вернитесь в Normal mode (Esc).
  4. Скопируйте добавленную строку (yy), переместитесь в конец файла (G), вставьте (p).
  5. Сохраните и выйдите (:wq).
  6. Просмотрите файл командой cat test.txt — вы должны увидеть две одинаковые строки.

Возможные проблемы

⚠️ "Заснул" в Vim, ничего не происходит? Вы находитесь в Normal mode. Нажмите i для вставки текста или Esc, затем :q! для выхода.

⚠️ Не могу выйти, пишет "No write since last change (add ! to override)"? У вас есть несохраненные изменения. Используйте :wq (сохранить и выйти) или :q! (выйти без сохранения).

⚠️ Курсор не двигается клавишами hjkl? Возможно, вы используете нестандартную раскладку или переопределили клавиши. Проверьте, что вы находитесь в Normal mode (Esc). Также в некоторых эмуляциях терминалов могут быть конфликты. Попробуйте использовать стрелки.

⚠️ Поиск (/) не находит, хотя текст есть? Убедитесь, что вы ищете точное написание (регистрозависимо по умолчанию). Используйте \c в конце шаблона для игнорирования регистра: /текст\c. Также проверьте, что не осталась старая подсветка поиска — очистите ее :nohlsearch.

⚠️ Случайно нажал Ctrl + s и терминал "завис"? Это стандартное поведение терминала (XON/XOFF flow control). Разблокируйте: нажмите Ctrl + q. В Vim можно отключить это поведение, добавив в ~/.vimrc: set t_ts= t_fs= (но это для продвинутых).

Часто задаваемые вопросы

Как правильно выйти из Vim, если застрял?
Чем режим Normal отличается от Insert?
Как скопировать и вставить строку в Vim?
Почему Vim кажется сложным и стоит ли его учить?

Полезное

Запуск Vim и понимание интерфейса
Переключение в режим вставки (Insert mode)
Навигация по файлу без мыши
Редактирование: удаление, отмена, повтор
Сохранение и выход из Vim