Как выйти из 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 и командной строкой
- Выберите себе профессию или улучшите навыки
Как выйти из файла в редакторе 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 — это свободный текстовый редактор, возможности которого во многом превосходят возможности обычного редактора. Однако есть минус — интерфейс редактора не интуитивен, поэтому для работы с ним нужно некоторое время потратить на изучение команд, горячих клавиш и т.п.
VIM имеет три режима работы:
- командный
- режим редактирования
- визуальный режим
Для перехода в командный режим требуется нажатие Esc. Все команды в VIM вводятся с символа двоеточия — «:» (без кавычек). Для перехода в визуальный режим требуется нажатие Ctrl+V.
В данной статье мы рассмотрим основы работы с редактором VIM и перечислим распространённые команды.
Использование редактора VIM
Для того, чтобы отредактировать или просмотреть файл, вводим в командной строке:
kondr ~ $ vim test.txt
Перед нами откроется редактор VIM, как показано на рисунке:

Меняем содержимое файла на произвольное.
После внесения изменений нажимаем «ESC» для выхода в «командный режим», вводим «:» (двоеточие), вводим «wq» (write-quit) — для сохранения изменений и выхода; «q!» — для выхода без сохранения, и нажимаем «Enter«.

Теперь Вы можете работать с файлом, изменять и сохранять изменения. Дальше перечислим другие команды для работы с файлами и текстом.
Работа с файлами
:q — закрыть файл, если не требует сохранения, т.е. в файле не было изменений. В противном случае VIM выдаст сообщение об ошибке, как показано на рисунке:

:q! — закрыть файл без сохранения;
:qa! — закрыть все файлы без сохранения;
:wq — закрыть и сохранить файл;
:wqa — закрыть все файлы с сохранением.
Работа с текстом
Перемещение по тексту
VIM обладает большими возможностями для ускорения работы с текстом и имеет большое количество команд для перемещения по тексту.
Для перемещения можно использовать стрелочки, а также h (Влево), l (Вправо), j (Вниз), k (Вверх).
Другие команды для перемещения по тексту:
|, 0, home — в начало строки;
^ — на первый непустой символ в строке;
$, end — в конец строки;
m — на половину ширины экрана;
g — на нижнюю строку;
e — до конца слова;
— — на строку вверх и на первый непустой символ;
+, Enter — на строку вниз и на первый непустой символ;
G — на последнюю строку;
H — на первую строку экрана;
M — на среднюю строку экрана;
L — на последнюю строку экрана;
w — на слово вперед;
b — на слово назад;
( — на предложение назад (до точки);
) — на предложение вперед (до точки);
— на абзац назад (до пустой строки);
> — на абзац вперед (до пустой строки);
:ju — список переходов.
Редактирование текста
VIM также имеет большое количество возможностей для быстрого редактирования.
Del, x — удаление символа под курсором;
X — удаление символа перед курсором;
u, :u — отмена последнего действия;
U — отменить все изменения, повлиявшие на текущую строку;
~ — перевести в верхний или нижний регистр в зависимости от текущего символа под курсором;
C — удалить от курсора и до конца строки с переходом в режим ввода;
D — удалить от текущего символа до конца строки;
dd — вырезать строку, на которой стоит курсор. Перед любой командой можно ввести числовой модификатор, который укажет сколько раз выполнить команду. Например: 3dd — удалит три строки начиная с текущей;
yy — копирует строку. Также можно использовать числовой модификатор;
p — вставить после текущей строки;
P — вставить перед текущей строкой;
— сдвиг влево текущей строки;
>> — сдвиг вправо текущей строки;
J — объединение текущей строки с последующей.
Для программистов
:set number — включить отображение номеров строк;
:set nonumber — отключить отображение номеров строк;
= — расстановка отступов для языка программирования С.
Удачной работы! Если возникнут вопросы — напишите нам, пожалуйста, тикет из Панели управления аккаунта, раздел «Помощь и поддержка».
Как выйти из редактора 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.