Глиф Учебники

Как выйти из vim и nano

Справочник · Командная строка Linux · 2 минуты чтения

Как выйти

Какой редактор открыт, видно по экрану: у nano внизу две строки подсказок со знаком ^ (например, ^X — выход), у vim таких подсказок нет, а пустые строки после конца файла помечены слева знаком ~.

vim или vi

Нажмите Esc, затем наберите одно из:

КомандаЧто делает
:q и Enterвыйти, если ничего не меняли
:q! и Enterвыйти без сохранения изменений
:wq и Enterсохранить и выйти
:x и Enterсохранить (если были изменения) и выйти

Команда с двоеточием появляется в самой нижней строке экрана. Если там не видно : — нажмите Esc ещё раз и наберите заново.

Почему vim «не выходит»

В vim несколько режимов. В режиме вставки (внизу надпись -- INSERT --, в русском интерфейсе — -- РЕЖИМ ВСТАВКИ --) все клавиши печатают текст, поэтому :q просто попадёт в файл. Esc возвращает в обычный режим, где работают команды.

  • E37: No write since last change (в русском интерфейсе — «Данные в буфере не сохранены») — в файле есть несохранённые изменения. Выйти с ними — :wq, бросить их — :q!.
  • E45: 'readonly' option is set или ошибка записи — у вас нет права менять файл. Выйдите через :q! и откройте файл заново через sudo: sudo vim /etc/hosts.
  • Внизу надпись recording (по-русски — ЗАПИСЬ В РЕГИСТР) — случайно нажата q и vim записывает макрос (запись нажатий клавиш для повтора). Нажмите q ещё раз, чтобы остановить запись, потом Esc и :q!.

Дальше: «Если терминал не реагирует совсем»

nano

КлавишиЧто делают
Ctrl+Xвыйти. Если файл менялся, nano спросит, сохранить ли его
Ctrl+O, затем Enterсохранить, не выходя
Ctrl+K и Ctrl+Uвырезать строку и вставить
Ctrl+Wпоиск по тексту

На вопрос о сохранении после Ctrl+X ответьте клавишей, которая показана внизу экрана (в английском интерфейсе Y — да, N — нет), затем подтвердите имя файла клавишей Enter. Знак ^ в подсказках внизу означает Ctrl.

Если терминал не реагирует совсем

Редактор по умолчанию

Команды вроде crontab -e и git commit открывают редактор из переменной EDITOR. Чтобы там всегда был nano, допишите в ~/.bashrc:

Bash
export EDITOR=nano

В Debian, Ubuntu и Mint есть ещё общесистемная настройка: sudo update-alternatives --config editor.