Как сохранить и выйти из Vim

Коротко о режиме и командах
Vim — модальный редактор. Режимы, которые нужно знать: нормальный (нажатия клавиш управляют редактором), режим вставки (печать текста) и командный режим (ввод команд, начинающихся с двоеточия). Чтобы попасть в командный режим — нажмите Esc из любого режима.
1-line glossary: Vim — модальный текстовый редактор; командный режим — режим для ввода команд, начинающихся с двоеточия.
Сохранение файла
Переключитесь в командный режим (Esc), затем введите одну из команд:
:wЭта команда записывает текущий буфер в файл (save). Аналог:
:writeПримечание: если вы хотите сохранить в другой файл, используйте :w имя_файла.
Выход из файла
Если изменений нет или вы уже сохранили, команда для выхода:
:qАльтернатива:
:quitЕсли в буфере есть несохранённые изменения, Vim не выйдет и предупредит вас. В этом случае используйте сохранение перед выходом или принудительный выход.
Сохранить и выйти
Сочетание команд для записи и выхода в одну строку:
:wqТакже работает:
:xРазница: :x записывает файл только если были изменения; :wq всегда попытается записать.
Выйти без сохранения
Если хотите отбросить изменения и выйти:
:q!Это принудительный выход — Vim не будет сохранять и не спросит подтверждения.
Быстрые сочетания клавиш
- ZZ — в нормальном режиме сохраняет и выходит (эквивалент :x). Чтобы сработало, нужно, чтобы команда ZZ была включена по умолчанию в вашей сборке Vim.
- ZQ — выйти без сохранения (эквивалент :q!).
Некоторые терминальные эмуляторы или конфигурации могут перехватывать сочетания клавиш — если ZZ/ZQ не работают, используйте команды с двоеточием.
Когда команды не работают (и что делать)
- Проблема: Vim сообщает, что файл изменён извне. Решение: :e! перечитает файл с диска, отбросив локальные изменения, или сохраните в другой файл.
- Проблема: Нет прав на запись. Решение: сохраните под другим именем (:w имя) или выйдите и сохраните с sudo (см. секцию о альтернативных подходах).
- Проблема: вы не в командном режиме. Решение: нажмите Esc, затем введите команду.
Альтернативные подходы
- Сохранить через sudo без выхода: если файл принадлежит root, можно использовать команду в командном режиме вместе с внешней программой: :w !sudo tee % >/dev/null — это сохранит файл с правами root без выхода из Vim.
- Плагинные решения: плагины могут добавить подтверждения, автосохранение или графические подсказки.
- GUI-версия (gVim, Neovim с GUI): те же команды работают, но интерфейс может предлагать меню “Save”/“Quit”.
Чек-лист по ролям
- Новичок:
- Нажать Esc, ввести :w для сохранения, :q для выхода.
- При сомнении — :w имя_файла (создать копию).
- Опытный пользователь:
- Использовать :x или ZZ для быстрого выхода.
- Настроить автосохранение или макросы при необходимости.
- Системный администратор:
- При редактировании системных файлов держать резервную копию.
- Если нет прав, применить :w !sudo tee % >/dev/null или редактировать через sudoedit.
Шпаргалка (cheat sheet)
| Действие | Команда |
|---|---|
| Сохранить | :w |
| Выйти | :q |
| Сохранить и выйти | :wq или :x |
| Выйти без сохранения | :q! |
| Сохранить под другим именем | :w имя_файла |
| Быстрый выход и сохранение | ZZ |
| Быстрый выход без сохранения | ZQ |
Решение частых задач: мини-методология
- Нажмите Esc, чтобы гарантировать нормальный режим. 2. Оцените: нужны ли изменения? 3. Если да — :w, затем :q либо сразу :wq. 4. Если нет — :q. 5. Если нет прав на запись — сохраните под другим именем или используйте sudo-паттерны.
Диаграмма принятия решения
flowchart TD
A[Начало: хотите выйти?] --> B{Есть несохранённые изменения?}
B -- Да --> C{Сохранить перед выходом?}
C -- Да --> D[:wq или :x]
C -- Нет --> E[:q!]
B -- Нет --> F[:q]
D --> G[Выход завершён]
E --> G
F --> GПрактические примеры и тесты приёмки
- Откройте новый файл, напишите текст, выполните :w — файл должен появиться на диске.
- Измените системный файл без прав — попытка :w должна дать ошибку; :w !sudo tee % >/dev/null должна сохранить.
- Выполните :q! после изменений — редактор закроется, никаких изменений в файле не будет.
Краткое резюме
Vim управляется режимами: для сохранения и выхода используйте команды в командном режиме. :w, :q, :wq, :x и :q! покрывают большинство сценариев. Для редактирования защищённых файлов применяйте sudo-подходы. Освоив эти простые команды, вы улучшите продуктивность и избежите потери данных.
Important: всегда проверяйте, в каком вы режиме (Esc возвращает в нормальный), и делайте резервные копии при работе с системными файлами.
Конец статьи.
Похожие материалы
Как на iPhone создать GIF из фото и видео
Встроенный перевод сообщений в Microsoft Teams
Палитра цветов в Adobe InDesign
USB‑микрофон на Android: подключение и настройка
Блокировка приложения в Интернет через брандмауэр Windows