Запись и выход — отдельные операции Vim. Перед вводом Ex-команды нажмите Esc, чтобы вернуться в нормальный режим, затем введите :, саму команду и нажмите Enter. Прежде чем считать запись успешной, прочитайте сообщение Vim о состоянии или ошибке.
Продвинутый Text-Fu · Урок 8
Сохранение и выход в Vim
Узнайте, как записать буфер 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! действуют на все окна, но перед принудительной командой для всех окон проверьте каждый изменённый буфер.
Потренироваться в записи и выходе на одноразовом файле можно в лаборатории:
- Редактирование текстовых файлов в Linux с помощью Vim и Nano — попрактикуйтесь в создании и редактировании файлов, сохранении и навигации в Vim и Nano, включая основные варианты сохранения и выхода.
Урок завершён
Вы завершили Сохранение и выход в Vim
Теперь вы умеете выбирать команду выхода Vim в соответствии с намерением относительно несохранённых данных.
Записывать буфер без выхода командой
:w.Безопасно выходить через
:q, когда изменения не потеряются.Намеренно отбрасывать изменения командой
:q!.Записывать и выходить через
:wq.Использовать
:xилиZZдля записи только изменённого буфера.
Сохраните прогресс
Создайте бесплатный аккаунт, чтобы сохранить этот урок и продолжить на любом устройстве.
Создать бесплатный аккаунт