Сохранение и выход в Vim
100%

Продвинутый Text-Fu · Урок 8

Сохранение и выход в Vim

Узнайте, как записать буфер Vim, выйти, сохранить его под другим именем или намеренно отбросить изменения.

Запись и выход — отдельные операции Vim. Перед вводом Ex-команды нажмите Esc, чтобы вернуться в нормальный режим, затем введите :, саму команду и нажмите Enter. Прежде чем считать запись успешной, прочитайте сообщение Vim о состоянии или ошибке.

Запись текущего буфера

Команда :w записывает текущий буфер в связанный с ним файл, не закрывая окно:

:w

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

Команда :w copy.txt записывает текущий буфер по другому пути, но сохраняет прежнее имя самого буфера. Используйте :saveas copy.txt, если буфер должен принять новый путь.

Какая команда Vim записывает текущий буфер в связанный файл, не завершая редактор?

Выход из неизменённого буфера

Команда :q закрывает текущее окно, если при этом не будут потеряны несохранённые изменения буфера:

:q

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

Какая команда закрывает текущее окно Vim, когда несохранённые изменения не будут потеряны?

Отбрасывание несохранённых изменений

Используйте :q! только тогда, когда намеренно хотите закрыть текущее окно и отбросить изменения, которые иначе помешали бы выходу:

:q!

Восклицательный знак отменяет предупреждение о несохранённых правках. Они не записываются, поэтому перед Enter убедитесь, что данные действительно не нужны.

В текущем буфере есть изменения, которые вы намеренно не хотите сохранять. Какая команда закроет окно и отбросит их?

Запись и выход одной командой

Используйте :wq, когда буфер нужно записать, а после успешной записи закрыть текущее окно:

:wq

Если запись не удалась, Vim не завершит запрошенный выход. Устраните ошибку, а не считайте, что данные попали на диск.

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

Команды :x и ZZ

:x записывает буфер только при наличии изменений, а затем выходит. В нормальном режиме прописная команда ZZ выполняет то же действие:

:x
ZZ

Это немного отличается от :wq, которая запрашивает запись даже неизменённого буфера. Прописная ZQ в нормальном режиме выходит без записи, подобно :q!.

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

Если открыто несколько окон или буферов, команда может закрыть лишь текущее окно. Команды :qa, :wqa и :qa! действуют на все окна, но перед принудительной командой для всех окон проверьте каждый изменённый буфер.

Урок завершён

Вы завершили Сохранение и выход в Vim

Теперь вы умеете выбирать команду выхода Vim в соответствии с намерением относительно несохранённых данных.

  • Записывать буфер без выхода командой :w.

  • Безопасно выходить через :q, когда изменения не потеряются.

  • Намеренно отбрасывать изменения командой :q!.

  • Записывать и выходить через :wq.

  • Использовать :x или ZZ для записи только изменённого буфера.

Сохраните прогресс

Создайте бесплатный аккаунт, чтобы сохранить этот урок и продолжить на любом устройстве.

Создать бесплатный аккаунт
Следующий Урок
Назад к Продвинутый Text-Fu