Как выйти из редактора Vi или Vim
Опубликовано: 2022-01-29 Редактор vi
сбивает с толку, если вы к нему не привыкли. Требуется секретное рукопожатие, чтобы выйти из этого приложения, если вы наткнулись на него. Вот как выйти из vi или vim в Linux, macOS или любой другой Unix-подобной системе.
Быстрый ответ
Если вы работаете в vi
или vim
и вам нужно выйти — с сохранением изменений или без — вот как это сделать:
- Сначала несколько раз нажмите клавишу Esc. Это гарантирует, что
vi
выйдет из режима вставки и перейдет в командный режим. - Во-вторых, введите
:q!
и нажмите Enter. Это говоритvi
выйти без сохранения каких-либо изменений. (Если вы хотите сохранить изменения, введите вместо этого:wq
.)
Если вы хотите изучить командную строку Linux, вам нужно знать гораздо больше. Читайте дальше, и мы покажем вам, как работает vi
и почему инструкции по выходу из программы такие необычные. vi
— важный, мощный инструмент, и процесс обучения того стоит.
vi, вездесущий редактор
Поскольку vi
есть везде, велика вероятность, что вы столкнетесь с ним. Вы даже можете случайно оказаться внутри vi
. Возможно, кто-то попросит вас взглянуть на его компьютер с Linux. Вы вводите команду вроде crontab -e
, и появляется vi
. Удивительно, но кто-то настроил редактор по умолчанию для crontab
как vi
.
Возможно, вы администрируете систему, в которой vi
является единственным редактором или единственным, который будет работать через удаленный сеанс SSH, и вам нужно отредактировать пользовательский файл .bashrc.
Команда для запуска vi
и открытия файла проста. Введите vi
, пробел, а затем имя файла. Нажмите Ввод. Запускаемой программой может быть vi
или vim
, «улучшенный vi
». Это зависит от вашего дистрибутива Linux — например, Ubuntu использует vim
. Все инструкции в этой статье в равной степени применимы и к vim
.
vi .bashrc
Сразу заметная разница между vi
и другими редакторами заключается в том, что при запуске vi
вы не можете просто начать печатать текст. Это потому, что vi
— модальный редактор. Редактирование осуществляется в одном режиме, режиме Вставки, а выдача команд производится в Командном режиме. vi
запускается в командном режиме.
Если вы не знакомы с концепцией режима вставки и командного режима, это может сбить с толку. Многие команды, которые вы можете выполнять в командном режиме, влияют на файл, который вы печатаете. Если вы находитесь в командном режиме, но по ошибке пытаетесь ввести текст в свой файл, это плохо кончится. Некоторые нажатия клавиш будут распознаваться как команды. Эти команды могут удалять или разделять строки, перемещать курсор или удалять текст.
И что бы вы ни печатали, вы не сможете найти способ выйти из редактора. Между тем, ваш файл становится довольно искаженным, и, казалось бы, случайные звуковые сигналы сводят вас с ума.
Командный режим и режим вставки
Вам нужно переключить vi
в соответствующий режим для того, что вы пытаетесь выполнить.
Командный режим является режимом по умолчанию при запуске vi
. Если вы не знаете лучше, вы начнете пытаться печатать. Если вы случайно нажмете клавишу «i» или любую из 10 других клавиш, которые вызывают режим вставки (a, A, c, C, I, o, O, R, s и S), вы внезапно увидите, что вы печатаете. Теперь вы находитесь в режиме вставки.
Это может показаться прогрессом, пока вы не нажмете одну из клавиш со стрелками. Если вы это сделаете, A, B, C или D будут отображаться как единственная буква в пустой новой строке. В верхней части файла.
Все в порядке, мы тебя прикроем. Это удивительно легко, когда вы знаете, как это сделать. Запомните эти два нажатия клавиш: Esc переводит вас в командный режим, а «i» — в режим вставки.
Вам нужно находиться в командном режиме и ввести правильную команду, чтобы выйти из редактора.
От командного режима к безопасности
Чтобы войти в командный режим, нажмите клавишу Esc. Ничего видимого не произойдет. Ударьте еще несколько раз. Если вы слышите звуковой сигнал при нажатии клавиши Escape, значит, вы находитесь в командном режиме. Звуковой сигнал говорит вам: «Прекратите нажимать Esc, вы уже находитесь в командном режиме». Если вы слышите звуковой сигнал, когда нажимаете Esc, все в порядке.
Введите двоеточие, букву «q» и восклицательный знак без пробелов. Эти три символа должны появиться в крайнем левом углу нижней строки терминала. Если это не так, нажимайте Esc, пока не услышите звуковой сигнал, и повторите попытку. Нажмите клавишу Enter, когда увидите их:
:к!
В этой команде q
является сокращением от quit
. Восклицательный знак добавляет акцента, поэтому создается впечатление, что вы кричите «Бросить!» в vi
. Это может заставить вас чувствовать себя немного лучше.
Восклицательный знак также предписывает vi
не сохранять какие-либо изменения, внесенные вами в файл. Если вы спотыкаетесь в vi
и не знаете, что делаете, вы, вероятно, не хотите спасать хаос, который вы устроили.
Как только вы вернетесь в командную строку, вы можете перепроверить, чтобы убедиться, что файл не был изменен. Вы можете сделать это с помощью следующей команды:
кошка .bashrc | меньше
Когда вы выходите из vi
, если вы видите сообщение «нет записи с момента последнего изменения», это означает, что вы пропустили восклицательный знак в команде. Чтобы предотвратить выход из программы и потерю изменений, которые вы хотели бы сохранить, vi
дает вам возможность сохранить их. Просто перевыпустите :q!
команду с восклицательным знаком, чтобы выйти из vi
и отменить любые изменения.
Если вы уверены, сохраните изменения
Если вас устраивают изменения, внесенные в файл, вы можете выйти и сохранить изменения с помощью команды :wq
(записать и выйти). Прежде чем продолжить, убедитесь, что вы полностью удовлетворены тем, что хотите, чтобы ваши изменения экрана были записаны в файл.
Введите двоеточие, букву w (написать) и букву q (выйти). Нажмите клавишу Enter, когда вы увидите их в левом нижнем углу терминала:
:wq
Кривая обучения того стоит
Использование vi
немного похоже на использование пианино. Вы не можете просто сесть и использовать его; вы должны попрактиковаться. Сидеть холодно и пытаться учиться на лету, когда на вас давят, чтобы что-то отредактировать, — это не способ сделать это. Это так же важно, как сесть за пианино в первый раз, когда поднимается занавес перед первым концертом.
Большая часть возможностей vi
исходит от множества комбинаций клавиш, каждая из которых выполняет общую задачу редактирования. Это здорово, но вы не сможете извлечь из них пользу, пока не запомните их, не потренируете, и они не станут частью вашей мышечной памяти.
До тех пор, если вы окажетесь в vi
и просматриваете важный файл, просто :q!
и выйти изящно. Ваш важный файл будет вам благодарен.