Как выйти из файла в редакторе Vi/Vim в Linux
В этой статье мы узнаем, как выйти из режима сохранения файла в Vi или Vim после внесения изменений в файл.
Прежде чем мы двинемся дальше, если вы новичок в Vim, мы рекомендуем прочитать эти 10 причин, по которым вам следует придерживаться текстового редактора Vi/Vim в Linux.
Чтобы открыть или создать новый файл с помощью Vi/Vim, просто введите приведенные ниже команды, затем нажмите i , чтобы переключиться в режим вставки (вставить текст):
$ vim file.txt OR $ vi file.txt

После внесения изменений в файл нажмите [Esc] , чтобы перейти в командный режим, затем нажмите :w и нажмите [Enter] , чтобы сохранить файл. файл.

Чтобы выйти из Vi/Vim, используйте команду :q и нажмите [Enter] .

Чтобы сохранить файл и выйти из Vi/Vim одновременно, используйте команду :wq и нажмите команду [Enter] или 😡 .

Если вы вносите изменения в файл, но пытаетесь закрыть Vi/Vim с помощью клавиш ESC и q , вы получите сообщение об ошибке, как показано на снимке экрана ниже.

Чтобы принудительно выполнить это действие, используйте ESC и :q! .

Кроме того, вы можете использовать быстрые методы. Нажмите клавишу [Esc] и введите Shift + Z Z , чтобы сохранить и выйти, или введите Shift + Z Q , чтобы выйти без сохранения изменений, внесенных в файл. .
Изучив приведенные выше команды, теперь вы можете приступить к изучению расширенных команд Vim по ссылкам, приведенным ниже:
- Изучите полезные советы и рекомендации по редактору Vi/Vim, чтобы улучшить свои навыки
- 8 интересных советов и рекомендаций по редактору Vi/Vim для каждого администратора Linux
В этой статье мы узнали, как выйти из текстового редактора Vim с помощью простых команд. Есть ли у вас какие-либо вопросы, чтобы задать или какие-либо мысли, чтобы поделиться? Пожалуйста, воспользуйтесь формой обратной связи ниже.
Все права защищены. © Linux-Console.net • 2019-2023
Как выйти из Vim

Если вы чувствуете себя немного расстроенным по причине незнания того, как выходить из Vim, то, скажу я, зря. Вы такой не один. Согласно Stack Overflow, около миллиона разработчиков искали выход из него.
Как выйти из Vim Я впервые столкнулась с такой проблемой, когда проходила на Хекслете курс по Git и случайно забыла написать комментарий к коммиту. Меня выкинуло на непонятную страницу, с которой я не могла выйти. Не знаю почему, но команду выхода не удалось найти на первых ссылках результата поисковика, поэтому, надеюсь, что кому-то будет полезно =)
- Нажмите ESC один раз (иногда дважды);
- Убедитесь, что вы используете метод ввода на английском языке;
- Следующий шаг зависит от текущего статуса и ваших ожиданий:
- Если вы не вносили никаких изменений, введите :q и нажмите Enter/return. Вы также можете заметить что :q на самом деле является сокращенной версией команды :quit.
- Если вы внесли какие-то изменения и хотели бы их сохранить , введите :wq и нажмите Enter/return В этом случае нам нужно будет использовать :wq, что означает «write and quit». Вы можете найти это в документации :wq.
- Если вы внесли какие-то изменения и предпочитаете отменить их, введите :q! и нажмите Enter/return
В Vim есть семь режимов BASIC и семь дополнительных режимов, которые считаются вариантами режимов BASIC. Вы можете запустить :h vim-modes внутри Vim, чтобы прочитать документацию, если хотите узнать больше.
К счастью, нам не обязательно знать их все, чтобы начать работу. Но есть два режима , которые будет полезно знать: Normal Mode, Insert Mode.
Normal Mode имеет важное значение, поскольку только здесь мы можем запускать команды. Скажем, если мы хотим прочитать документацию vim-modes, мы должны сначала убедиться, что мы в Normal Mode, прежде чем вводить :h vim-modes. Войти в Normal Mode можно нажатием ESC.
Insert Mode вы используете для редактирования текущего файла (в Vim это обычно обозначается как buffer). По умолчанию мы оказываемся Normal Mode. Если нам нужно внести изменения в текущий файл, сначала нам нужно переключиться на Insert Mode. Наиболее распространенный способ сделать этот переключатель является нажатием i на Normal mode после наведения курсора на то место , которое мы будем редактировать.
И, когда мне становится грустно, с какой очевидной ошибкой я столкнулась, то всегда вспоминаю фразу из статьи:
Если вы чувствуете себя немного расстроенным по причине незнания того, как выходить из Vim, то, скажу я, зря. Вы такой не один. Согласно Stack Overflow около миллиона разработчиков искали выход из него.
Бесплатные курсы по программированию в Хекслете
- Освойте азы современных языков программирования
- Изучите работу с Git и командной строкой
- Выберите себе профессию или улучшите навыки
Как выйти из VIM
Вчера вопрос «Как выйти из редактора Vim?», опубликованный в 2012 году, достиг рекордного количества просмотров: 1 000 000. В честь этого события на Stack Overflow провели исследование и выложили статистику, которая иллюстрирует популярную проблему.
Почему не получается выйти?
Причины обычно две: человек попадает в Vim неожиданно для себя (его туда забрасывает консоль или стороннее приложение) и / или он заходит туда настолько редко, что каждый раз забывает, как закрыть программу.
Сколько людей попадает в ловушку?
За последний год вопрос набрал около 0,005% от общего трафика = 1 из 20 000 посещений = по будням в самое активное рабочее время около 80 человек в час ищут, как выбраться из редактора. В течение 5 лет с момента публикации появлялось все больше уставших от безвыходного положения:

А вот так распределяется количество запросов по странам:

Какие программисты чаще всего застревают?
Самый интересный вопрос — какова корреляция между тем, какой язык использует разработчик, и тем, как часто у него возникают проблемы с выходом из Vim? Исследователи посмотрели, какие теги активно посещают застрявшие пользователи. Оказалось, больше всего страдают мобильные, фронтенд- и C#-разработчики (привыкли использовать IDE), а меньше всего — программисты на C, C++, Python и Ruby (у них обычно нет проблем с текстовыми редакторами).

По мотивам: stackoverflow.com и tproger.ru
Возможно вас заинтересует:
Запись опубликована в рубрике Linux, Аналитические с метками stackoverflow, vi, vim, репост. Добавьте в закладки постоянную ссылку.
Добавить комментарий Отменить ответ
Для отправки комментария вам необходимо авторизоваться.
Как выйти из редактора Vi или Vim?
Прежде чем ввести команду, нажмите Esc . Чтобы потом подтвердить команду, нажмите Enter .
Клавиша Esc переключает Vim в нормальный режим. Если в этом режиме нажать : (проверьте, что установлена английская раскладка и снят CapsLock, затем одновременно нажмите Shift и ; ), то символ : появится в нижней части экрана, и редактор перейдёт в режим командной строки. Это гарантирует, что вы сейчас именно вводите команду, а не редактируете файл. Помните, что регистр вводимых команд важен.
У большинства команд есть укороченные версии. Необязательная часть дается в квадратных скобках: к[оманда] .
Команды, данные курсивом , подходят только для Vim (не реализованы в Vi).
Выйти безопасно (не срабатывает, если есть не сохраненные изменения)
- :q[uit] Выйти из текущего окна Vim. Если это окно — последнее, то выйти из Vim. Если в текущем буфере есть не сохраненные изменения, команда не сработает.
- :qa[ll] Закрыть все окна и выйти из Vim. Не сработает, если хотя бы в одном буфере есть не сохраненные изменения.
Выйти с подтверждением (запрашивает подтверждение, если есть не сохраненные изменения)
- :conf[irm] q[uit] Закрыть все окна и выйти из Vim. Запрашивает подтверждение, если есть буферы с не сохраненными изменениями.
- :conf[irm] xa[ll] Сохранить все изменения, закрыть все окна и выйти из Vim. Запрашивает подтверждение, если какие–либо буферы не могут быть сохранены.
Записать (сохранить) изменения и выйти
- :wq Записать текущий буфер в соответствующий ему файл (даже если изменений не было) и закрыть окно. :wqa[ll] для всех окон.
- :wq! То же самое, но записывает даже файлы, отмеченные только для чтения (read-only). :wqa[ll]! для всех окон.
- :x[it] , ZZ (но с некоторыми особенностями). Сохранить файл только если в нем есть изменения и выйти, :xa[ll] для всех окон.
Отменить (и потерять) изменения и выйти
- :q[uit]! ZQ Выйти без сохранения, в том числе когда есть изменения в видимых буферах. Не сработает, если изменения есть также и в скрытых буферах.
- :qa[ll]! , :quita[ll][!] Выйти без сохранения, отменяя все изменения как в видимых, так и в скрытых буферах.
Нажмите Enter чтобы выполнить введенную команду.
Этот ответ все-таки не охватывает все возможные способы выйти из Vim. Полный список можно найти в документации Vim.
На момент публикации все ссылки верны и ведут на англоязычную версию документации, но сайт временно недоступен. Когда он поднимется, я добавлю ссылки на русскоязычную версию.
Vim также имеет встроенную документацию. Чтобы ее открыть: Esc :help Enter . Чтобы использовать русскоязычную встроенную документацию, необходимо включить русскую локализацию в настройках Vim.
Это перевод собственного ответа на EN.SO. При написании использовалась документация Vim и, в качестве ориентира и источника вдохновения, ответы других пользователей, особенно @dirvine.