Гид по технологиям

Vim — базовые команды и режимы в Linux

8 min read Инструменты Обновлено 28 Dec 2025
Vim — базовые команды и режимы
Vim — базовые команды и режимы

Vim — мощный консольный редактор для Unix-подобных систем. Освойте режимы (Normal, Insert, Visual, Command), базовые движения и операторы (d, c, y, p), а также регулярные выражения для поиска. Эта статья даёт практическое руководство, шпаргалку команд, план обучения и чек-листы для разработчиков и администраторов.

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

Vim — один из самых универсальных и быстрых текстовых редакторов для Unix-подобных систем. Он является продолжением классического vi, разработанного Биллом Джойем. На большинстве дистрибутивов Linux и BSD Vim устанавливается по умолчанию, поэтому вы можете использовать один и тот же инструмент локально и на удалённых серверах.

Ключевая идея Vim — работать эффективно: редактор ориентирован на редактирование (перемещение, изменение, повторение), а не на набор текста, как это делает графический редактор. Для этого у Vim есть несколько режимов, каждый со своей семантикой и набором клавиш.

Как работает Vim

Vim отличается от традиционных редакторов. Он реализует философию Unix: делать одну вещь хорошо. Важное понятие: вы как программист тратите большую часть времени на правку и навигацию по коду, а не на его ввод. Поэтому Vim разделяет действия на режимы — наборы команд, которые экономят движения рук и повышают выразительность.

Основные режимы Vim:

  • Normal — режим построения команд и навигации (основной рабочий режим).
  • Insert — режим ввода текста.
  • Visual — режим выделения текста (включая блочное выделение).
  • Command — режим ввода двоеточковых команд (:w, :q и т.д.).

Схема режимов Vim: Normal, Insert, Visual, Command

Важно: нажимая , вы возвращаетесь в Normal-режим из любого другого режима.

Вставка текста: Insert Mode

По умолчанию Vim запускается в Normal-режиме. Чтобы перейти в Insert-режим, нажмите клавишу i — вставка начинается в текущей позиции курсора. Внизу экрана появится индикатор режима.

Когда вы вносите изменения в Insert-режиме, текст копируется в буфер редактирования. Для сохранения и выхода вернитесь в Normal-режим (нажмите ) и выполните команду записи:

:w

Альтернативные способы входа в Insert-режим:

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

Вставка текста: курсор в редакторе Vim в режиме Insert

Для сохранения и выхода в одну команду можно использовать:

:wq

Или если нужно выйти без сохранения:

:q!

Навигация и правка: Normal Mode

В Normal-режиме вы перемещаетесь по файлу и выполняете быстрые операции. Вместо стрелок Vim использует hjkl: h — влево, j — вниз, k — вверх, l — вправо. Такой подход минимизирует перемещение рук с основной позиции над клавишами.

Навигация по словам и строкам:

  • w — переход к началу следующего слова.
  • b — переход к началу предыдущего слова.
  • e — переход к концу слова.
  • 0 (ноль) — начало строки.
  • $ — конец строки.
  • H — верх экрана.
  • M — середина экрана.
  • L — низ экрана.
  • gg — начало файла.
  • G — конец файла.
  • Ctrl+u — прокрутить вверх на половину экрана.
  • Ctrl+d — прокрутить вниз на половину экрана.

Навигация по словам и строкам в Vim

Операторы редактирования комбинируются с движениями (motions). Общая форма:

{оператор}{движение}

Примеры:

  • d{motion} — удалить по движению. Например, dw — удалить слово; d$ — до конца строки; dd — удалить строку.
  • c{motion} — изменить по движению и перейти в Insert-режим (cw — изменить слово).
  • y{motion} — «йэнк» (копировать) по движению; yy — скопировать строку.
  • p — вставить после курсора, P — вставить перед курсором.
d{motion}

Вы также можете повторить последнюю команду нажатием точки: .

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

  • u — отмена последнего действия.
  • Ctrl+r — вернуть отменённое.

Поиск:

/{regex}

Где {regex} — регулярное выражение. n — перейти к следующему совпадению, N — к предыдущему.

Удаление текста и изменения с помощью операторов d и c

Выделение: Visual Mode

Visual-режим позволяет выделять блоки текста с помощью тех же движений. Войдите в него клавишей v из Normal-режима.

  • v — визуальный по символам.
  • V — визуальный по строкам.
  • Ctrl+v — визуальный блочный режим (column/block selection).

Выделив участок, можно применить операторы: y — скопировать выделение, d — удалить, >/< — сдвинуть вправо/влево, = — автоформатирование при поддержке плагинов.

Блочное выделение: редактирование нескольких строк одновременно

Visual-блоки особенно полезны при правке столбцов данных, выравнивании кодов и массовых правках.

Командный режим: ввод двоеточковых команд

Нажмите : в Normal-режиме, чтобы попасть в Command-строку. Ниже перечислены самые полезные команды:

  • :w — сохранить файл.
  • :wq — сохранить и выйти.
  • :saveas FILE — сохранить как FILE.
  • :q — выйти (если нет несохранённых изменений).
  • :q! — выйти без сохранения.
  • :e FILE — открыть FILE для редактирования.
  • :help — открыть встроенную справку.

Эти команды удобно комбинировать: например, :%s/old/new/g выполнит замену по всему файлу.

Быстрые советы и трюки

  • Используйте регистры, чтобы копировать/вставлять в конкретный буфер: “ayw — скопировать слово в регистр a, “ap — вставить из регистра a.
  • Макросы: q<регистровая клавиша> записывает макрос, q останавливает запись, @<регистровая клавиша> воспроизводит.
  • Автодополнение: Ctrl+n / Ctrl+p в Insert-режиме для подсказок на основе буфера.
  • Настройка: ~/.vimrc содержит ваши настройки; используйте плагины через менеджеры (vim-plug, Vundle, dein).

Цель не запомнить всё сразу, а понять паттерны: движения + оператор + точка повтора.

Шпаргалка: основные команды

ДействиеКоманда
Войти в Insert в текущей позицииi
Вставить строку нижеo
Вставить строку вышеO
Сохранить:w
Сохранить и выйти:wq
Выйти без сохранения:q!
Удалить символx
Удалить словоdw
Удалить до конца строкиd$
Удалить строкуdd
Изменить словоcw
Изменить строкуcc
Копировать словоyw
Копировать строкуyy
Вставитьp
Отменитьu
Повторить.
Поиск/pattern
Следующее совпадениеn
Предыдущее совпадениеN

Пошаговая методика изучения (мини-методология)

  1. День 1–3: Овладейте переходами (hjkl, w, b, e, 0, $), возврат в Normal и базовые сохранения (:w, :q).
  2. День 4–7: Учитесь комбинировать операторы с движениями: d, c, y + motion. Повторяйте команду точкой.
  3. Неделя 2: Visual-режим, блочное выделение, макросы q и @, простые замены :s.
  4. Непрерывно: настраивайте ~/.vimrc, затем по одной настройке или плагину в неделю.

Практика: выделяйте 15–30 минут в день на выполнение мини-задач (редактирование конфигов, исправление кода) без мыши.

Чек-листы по ролям

Разработчик:

  • Освоить перемещения по словам и строкам (w, b, e, gg, G).
  • Понимать d/c/y и их комбинации.
  • Уметь искать и заменять по регулярным выражениям.
  • Использовать макросы для повторяющихся рефакторингов.

Системный администратор:

  • Уметь открывать и сохранять файлы на сервере (:e, :w).
  • Быстро редактировать конфиги (Vim в терминале, без мыши).
  • Использовать Visual Block для изменения столбцов IP/портов.
  • Знать способы безопасного выхода (:wq, :q!).

Новичок/стажёр:

  • Знать как войти и выйти из режима (i, , :wq, :q!).
  • Понимать базовые движения и удаление одной строки (dd).
  • Использовать поиск / и повтор n/N.

Когда Vim не подходит (контрпримеры)

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

План действий при ошибках и откате

Если вы внесли нежелательные изменения:

  • Отмена: нажмите u, чтобы отменить последнюю операцию.
  • Откат нескольких шагов: повторите u несколько раз.
  • Если всё испорчено и нужно выйти без сохранения: :q!

Важно: регулярно сохраняйте файл в отдельный бэкап: :w filename.bak

Критерии приёмки

Чтобы считать, что вы освоили базовый Vim, вы должны уметь:

  • Перемещаться по коду без стрелок и мыши.
  • Комбинировать операторы и движения (удалять, менять, копировать произвольные фрагменты).
  • Использовать визуальные режимы для массовых правок.
  • Применять макросы и работать с регистрами для копирования/вставки.

Короткий глоссарий

  • Normal — основной режим для команд и навигации.
  • Insert — режим ввода текста.
  • Visual — режим выделения: символный, строковый, блочный.
  • Motion — движение курсора (w, b, e, gg и т.д.).
  • Operator — действие, применяемое к motion (d, c, y).

Ментальные модели и эвристики

  • Думайте в терминах “оператор + движение”: d + w (удалить слово), c + $ (изменить до конца строки).
  • Всегда возвращайтесь в Normal-режим для планирования следующего шага.
  • Повторяйте первые команды точкой (.) для обучения мышечной памяти.

Маленькая шпаргалка для ~/.vimrc

Примеры полезных настроек (помещайте в ~/.vimrc):

set number          " показать номера строк
set relativenumber  " относительные номера
syntax on           " подсветка синтаксиса
set tabstop=4       " ширина табуляции
set shiftwidth=4    " отступы при автоформатировании
set expandtab       " табы заменять пробелами

Диаграмма принятия решения: какой режим выбрать

flowchart TD
  A[Я хочу изменить/переместить] -->|Просто ввести текст| B[Insert: i/o/A/I]
  A -->|Выделить блок| C[Visual: v/V/Ctrl+v]
  A -->|Выполнить команду/замену| D[Command: :s, :w, :q]
  A -->|Удалить/заменить по движению| E[Normal: d/c + motion]
  B --> F[Возврат в Normal: ]
  C --> F
  D --> F
  E --> F

Публичные советы по продуктивности

  • Начинайте с коротких сессий без мыши: 15–30 минут в день.
  • Настройте удобную клавиатуру и переназначения, если нужно.
  • Используйте интеграцию с tmux для работы с несколькими файлами и сессиями.

Важно: Vim — это инструмент, который даёт преимущество за счёт практики. Не пытайтесь выучить всё сразу.

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

Нужно ли изучать Vim, если я пользуюсь VS Code?

Да, если вы работаете с удалёнными серверами, конфигурациями или хотите повысить скорость редактирования — базовые навыки Vim полезны даже в GUI-редакторах.

Как безопасно практиковаться на продуктивных файлах?

Копируйте файл в тренировочный вариант (cp /etc/config /tmp/config.test) и практикуйтесь на копии. Для важных изменений используйте систему контроля версий.

Что делать, если я застрял в Vim и не знаю, как выйти?

Нажмите , затем введите :q! и нажмите Enter, чтобы выйти без сохранения.


Заключение

Vim даёт контроль и скорость за счёт концепции режимов и сочетаний оператор+движение. Начните с базовых движений и операций, практикуйте макросы и визуальные блоки. Постепенно настраивайте ~/.vimrc под свои задачи. Даже базовые навыки заметно ускоряют правку кода и конфигураций.

Иллюстрация: быстрые команды Vim для повседневного использования

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Как сохранить пароли в Google Chrome
Инструкции

Как сохранить пароли в Google Chrome

Заполнение последовательных данных в Excel
Excel

Заполнение последовательных данных в Excel

Доступ к геоблокированному контенту: VPN и альтернативы
Технологии

Доступ к геоблокированному контенту: VPN и альтернативы

JUnit 5 @Nested: вложенные тесты
Тестирование

JUnit 5 @Nested: вложенные тесты

Открыть приложение, если macOS пишет «повреждено»
macOS

Открыть приложение, если macOS пишет «повреждено»

Обновить контроллер Xbox через ПК — инструкция
Инструкция

Обновить контроллер Xbox через ПК — инструкция