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

Я застрял и не могу сбежать. Это говорит:

"type :quit<Enter> to quit VIM"

Но когда я набираю текст, он просто появляется в теле объекта.

2982 голоса | спросил jclancy 6 PM00000040000004731 2012, 16:25:47

11 ответов


0

Нажмите клавишу Esc , чтобы перейти в «обычный режим». Затем вы можете ввести :, чтобы войти в «Режим командной строки». В нижней части экрана появится двоеточие (:), и вы можете ввести одну из следующих команд. Чтобы выполнить команду, нажмите клавишу Enter .

  • :q для выхода (сокращение от :quit)
  • :q! выйти без сохранения (сокращение от :quit!) литий>
  • :wq, чтобы написать и выйти
  • :wq! для записи и выхода, даже если файл имеет только разрешение на чтение (если у файла нет разрешения на запись: принудительная запись)
  • :x для записи и выхода (аналогично :wq, но пишите только если есть изменения)
  • :exit для записи и выхода (аналогично :x) литий>
  • :qa для выхода из всех (сокращение от :quitall ) литий>
  • :cq выйти без сохранения и заставить Vim возвращать ненулевую ошибку (то есть выход с ошибкой)

Вы также можете выйти из Vim напрямую из «Командного режима», набрав ZZ, чтобы сохранить и выйти (так же, как :x) или ZQ, чтобы просто выйти (так же, как :q!). (Обратите внимание, что здесь важен регистр. ZZ и zz не означает одно и то же.)

Vim обладает обширной справкой, к которой вы можете обратиться с помощью команды :help, где вы можете найти ответы на все ваши вопросы и учебное пособие. для начинающих.

ответил dirvine 6 PM00000040000001631 2012, 16:46:16
0

Перед вводом команды нажмите клавишу Esc . После ввода нажмите Return для подтверждения.

Esc завершает текущую команду и переключает Vim в нормальный режим . Теперь, если вы нажмете : , : появится в нижней части экран. Это подтверждает, что вы на самом деле вводите команду, а не редактируете файл.

Большинство команд имеют сокращения, при этом необязательная часть заключена в квадратные скобки: c[ommand].

Команды, отмеченные *, предназначены только для Vim (не реализованы в Vi).

Безопасный выход (не выполняется, если есть несохраненные изменения):

  • :q[uit] Выйти из текущего окно . Выйдите из Vim, если это последнее окно. Это не удается, если изменения были внесены в текущий буфер .
  • :qa[ll] * Выйдите из всех окон и Vim, если только не было каких-либо буферов, которые были изменены.

Подсказка-выход (подсказка, если есть несохраненные изменения)

  • :conf[irm] q[uit] * Выйти, но дать подсказку, когда есть некоторые буферы, которые были изменены.
  • :conf[irm] xa[ll] * Запишите все измененные буферы и выйдите из Vim. Вызовите подсказку, когда некоторые буферы не могут быть записаны.

Записать (сохранить) изменения и выйти:

  • :wq Записать текущий файл (даже если он не был изменен) и выйти. Сбой записи, когда файл доступен только для чтения или у буфера нет имени. :wqa[ll] * для всех окон.
  • :wq! То же самое, но записывает даже файлы только для чтения. :wqa[ll]! * для всех окон.
  • :x[it], ZZ подробности ). Напишите файл только , если он был изменен , и закройте его, :xa[ll] * для всех окон.

Отменить изменения и выйти:

  • :q[uit]! ZQ * Выйти без записи, также когда видимые буферы имеют изменения. Не выходит при смене скрытых буферов.
  • :qa[ll]! *, :quita[ll][!] * Выйти из Vim, все изменения в буферах (включая скрытые) теряются.

Нажмите Return , чтобы подтвердить команду.

Этот ответ не относится ко всем командам и аргументам Vim для записи и выхода. Действительно, на них есть ссылки в документации Vim .

Vim имеет обширную встроенную справку, введите Esc :help Return чтобы открыть его.

Этот ответ был вдохновлен другим , изначально созданным @dirvine и отредактированным другими пользователями SO. Я включил больше информации из справочника Vim, комментариев SO и некоторых других источников. Различия для Vi и Vim также отражены. Суб>

ответил Nick Volynkin 8 J0000006Europe/Moscow 2015, 16:34:41
0

Картинки стоят тысячи команд и опций Unix:

 Введите описание изображения здесь

Я рисую это своим студентам каждый семестр, и они, кажется, потом понимают vi.

vi - это конечный автомат только с тремя состояниями.

После запуска vi переходит в режим КОМАНДЫ, где вы можете вводить короткие команды из нескольких символов вслепую . Вы знаете, что делаете; это не для любителей.

Если вы хотите на самом деле редактировать текст, вы должны перейти в режим INSERT с помощью одной односимвольной команды:

  • i: перейти на INSERT вместо курсора
  • I: перейти в режим INSERT в начале строки
  • a: добавить после курсора
  • A: добавить в конец строки
  • o: открыть новую строку под текущей строкой
  • O: открыть новую строку вместо текущей строки

Теперь, отвечая на вопрос: выход.

Вы можете выйти из vi из режима EX:

  • q: если вы не внесли никаких изменений или не сохранили их заранее
  • q !: игнорирует любые изменения и выходит
  • wq: сохранить и выйти
  • x: это равно wq

w и x принять параметр имени файла. Если вы запустили vi с именем файла, вам не нужно указывать его здесь снова.

Наконец, самое важное: как добраться до режима EX?

Режим EX предназначен для длинных команд, которые вы можете увидеть, набрав в нижней строке экрана. В режиме COMMAND вы нажимаете двоеточие :, и в нижней строке появляется двоеточие, где вы можете вводить вышеуказанные команды.

В режиме INSERT необходимо нажать ESC, т. е. кнопку Escape, перейти в режим COMMAND, а затем: для перехода в режим EX.

Если вы не уверены, нажмите ESC, и вы перейдете в командный режим.

Итак, надежный метод - ESC -: - x-Enter, который сохраняет ваш файл и завершает работу.

ответил Gergely 26 Maypm17 2017, 15:24:30
0

Если вы хотите выйти без сохранения в Vim и , чтобы Vim возвращал ненулевой код выхода, вы можете использовать :cq

Я использую это все время, потому что я не могу быть обеспокоен смещением мизинца для !. Я часто передаю в Vim вещи, которые не нужно сохранять в файле. У нас также есть странная оболочка SVN на работе, которая должна быть закрыта с ненулевым значением, чтобы прервать регистрацию.

ответил Sue Spence 28 Jpm1000000pmTue, 28 Jan 2014 14:59:56 +040014 2014, 14:59:56
0

Это для наихудшего сценария выхода из Vim, если вы просто хотите выйти, не представляете, что вы сделали, и вам все равно, что произойдет с файлами, которые вы открыли.

Ctrl-C Enter Enter vi

Это должно вытащить тебя большую часть времени.

Несколько интересных случаев, когда вам нужно что-то вроде этого:

    i Ctrl-O vg (вы входите в режим вставки, затем в визуальный режим, а затем в режим ожидания оператора) Qappend Enter i Ctrl-O gQ Ctrl-R = Ctrl-K (спасибо porges за этот случай)
  • :set insertmode (это тот случай, когда Ctrl - \ Ctrl-n возвращает вас в нормальный режим)


Изменить. Этот ответ был исправлен в связи с вышеуказанными случаями. Раньше было:

Esc Esc Esc :qa! Enter

Однако это не сработает, если вы вошли в режим Ex. В этом случае вам нужно будет сделать:

vi Enter :qa! Enter

Итак, полная команда: «Я не хочу знать, что я сделал, и я не хочу ничего сохранять, я просто хочу сейчас!» будет

vi Enter Esc Esc Esc :qa! Enter

ответил Heikki Naski 24 J0000006Europe/Moscow 2015, 16:38:32
0

Если вам нужно выйти из Vim в простом режиме (при использовании опции -y), вы можете ввести нормальный режим Vim, нажав Ctrl + L , и тогда любой из нормальных вариантов выхода будет работать.

ответил wsams 18 J000000Friday14 2014, 17:48:59
0

Vim имеет три режима работы: режим ввода, командный режим и усиление; Экс режим.

Режим ввода - все, что вы вводите, все нажатия клавиш отображаются на экране.

Командный режим или режим Escape - все, что вы вводите в этом режиме, интерпретируется как команда.

Ex mode - это другой редактор, напр. Это линейный редактор. Он работает на строку или на основе ряда строк. В этом режиме в нижней части экрана отображается : . Это бывший редактор.

Чтобы выйти из Vim, вы можете выйти, находясь либо в режиме ex, либо в командном режиме. Вы не можете выйти из Vim, когда находитесь в режиме ввода.

Выход из режима ex

  1. Вы должны быть уверены, что находитесь в командном режиме. Для этого просто нажмите клавишу Esc .

  2. Перейдите в режим ex, нажав клавишу :

  3. Для выхода используйте любую из следующих комбинаций в режиме ex:

    :q - выйти :q! - выйти без сохранения :wq - сохранить & выйти или написать & уволиться :wq! - аналогично wq, но принудительная запись в случае, если права доступа к файлу доступны только для чтения :x - написать & уволиться :qa - выйти из программы. полезно, когда открыто несколько файлов, например: vim abc.txt xyz.txt

Выход из командного режима

  1. Нажмите клавишу выхода. Вы, вероятно, уже сделали это, если находитесь в командном режиме.

  2. Нажмите заглавную ZZ (shift zz) - сохранить & Выход

  3. Нажмите заглавную ZQ (shift zq) - выйти без сохранения.

ответил tovishalck 24 Mayam17 2017, 05:46:27
0

После нажатия ESC (или cmd + C на моем компьютере) вы должны нажать : для команды подскажите появиться. Затем вы можете ввести quit.

Вы можете обнаружить, что устройство не позволит вам выйти, потому что ваша информация не была сохранена. Если вы все равно хотите выйти, введите ! сразу после выхода (т. Е. :quit!).

ответил deleteMe 28 52014vEurope/Moscow11bEurope/MoscowFri, 28 Nov 2014 18:25:00 +0300 2014, 18:25:00
0

Я получил Vim, установив клиент Git в Windows. :q не выйдет из Vim для меня. :exit сделал, однако ...

ответил Bjørn van Dommelen 5 FebruaryEurope/MoscowbThu, 05 Feb 2015 14:30:11 +0300000000pmThu, 05 Feb 2015 14:30:11 +030015 2015, 14:30:11
0

На самом деле очень легко выйти из vim.

Нажмите Escape , дважды обернитесь, пните кота, приготовьте идеальную чашку чая, пробежите четыре минуты, поднимитесь на Эверест, сделайте Запустить Кессель менее чем за 12 парсеков, захватить железный трон, достичь мира во всем мире, нажать :q Enter

ответил Caltor 26 +03002018-10-26T14:10:59+03:00312018bEurope/MoscowFri, 26 Oct 2018 14:10:59 +0300 2018, 14:10:59
0

Вот как вы можете выйти из Vim. Нажмите Ctrl & «Z», затем «X» и «C».

Ctrl -> +Z -> +X -> +C
ответил Alimov Shohrukh 31 Mayam18 2018, 09:46:05

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132