Поиск по сайту:

Как выйти из редактора Vi или Vim


Редактор 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!

В этой команде q является сокращением от quit. Восклицательный знак добавляет акцента, так что вы как будто кричите «Бросить!» в vi. Это может заставить вас чувствовать себя немного лучше.

Восклицательный знак также указывает vi не сохранять любые изменения, которые вы могли внести в файл. Если вы спотыкались в vi и не знали, что делаете, вы, вероятно, не хотите спасать хаос, который вы устроили.

Как только вы вернетесь в командную строку, вы можете перепроверить, чтобы убедиться, что файл не был изменен. Вы можете сделать это с помощью следующей команды:

cat .bashrc | less

Когда вы выходите из vi, если вы видите сообщение «нет записи с момента последнего изменения», это означает, что вы пропустили восклицательный знак в команде. Чтобы предотвратить выход из программы и потерю изменений, которые вы хотели бы сохранить, vi дает вам возможность сохранить их. Просто повторите команду :q! с восклицательным знаком, чтобы выйти из vi и отказаться от любых изменений.

Если вы уверены, сохраните изменения

Если вас устраивают изменения, внесенные в файл, вы можете выйти и сохранить изменения с помощью команды :wq (записать и выйти). Прежде чем продолжить, убедитесь, что вы полностью удовлетворены тем, что хотите, чтобы ваши изменения экрана были записаны в файл.

Введите двоеточие, букву w (написать) и букву q (выйти). Нажмите клавишу Enter, когда вы увидите их в левом нижнем углу терминала:

:wq

Кривая обучения того стоит

Использование vi немного похоже на использование пианино. Вы не можете просто сесть и использовать его; вам нужно немного попрактиковаться. Сидеть холодно и пытаться учиться на лету, когда на вас давят, чтобы что-то отредактировать, — это не способ сделать это. Это так же важно, как сесть за пианино в первый раз, когда поднимается занавес перед первым концертом.

Большая часть возможностей vi исходит из множества комбинаций клавиш, каждая из которых выполняет общую задачу редактирования. Это здорово, но вы не сможете извлечь из них пользу, пока не запомните их, не отработаете и они не станут частью вашей мышечной памяти.

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