Как выйти из редактора Vim?
Я застрял и не могу убежать. В нем говорится:
"type :quit<Enter> to quit VIM"
Но когда я набираю, он просто появляется в теле объекта.
Ответы
Ответ 1
Нажмите клавишу 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
команды :help
где вы можете найти ответы на все ваши вопросы и учебное пособие для начинающих.
Ответ 2
Прежде чем вводить команду, нажмите клавишу Esc. После того, как вы введете его, нажмите Return для подтверждения.
Esc заканчивает текущую команду и переключает Vim в нормальный режим. Теперь, если вы нажмете :, в нижней части экрана появится :
Это подтверждает, что вы на самом деле вводите команду, а не редактируете файл.
Большинство команд имеют сокращения, а необязательная часть заключена в квадратные скобки: c[ommand]
.
Команды, отмеченные *, предназначены только для Vim (не реализованы в Vi).
Безопасный выход (завершается неудачей, если есть несохраненные изменения):
-
:q[uit]
Выйти из текущего окна. Выйдите из Vim, если это последнее окно. Это терпит неудачу, когда изменения были сделаны в текущем буфере. -
:qa[ll]
* Закройте все окна и Vim, если только нет буферов, которые были изменены.
Promit-quit (запрашивает, есть ли несохраненные изменения)
-
: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 write и quit. Действительно, они упоминаются в документации Vim.
Vim имеет обширную встроенную справку, введите Esc :help
Return, чтобы открыть ее.
Этот ответ был вдохновлен другим, изначально созданным @dirvine и отредактированным другими пользователями SO.Я включил больше информации из справочника Vim, комментариев SO и некоторых других источников.Различия для Vi и Vim также отражены.
Ответ 3
Картинки стоят тысячи команд и опций Unix:
Я рисую это своим студентам каждый семестр, и они, кажется, потом понимают vi.
vi - конечный автомат с тремя состояниями.
После запуска vi переходит в режим КОМАНДЫ, где вы можете слепо набирать короткие команды из нескольких символов. Вы знаете, что делаете; это не для любителей.
Если вы действительно хотите редактировать текст, вы должны перейти в режим INSERT с помощью одной односимвольной команды:
- i: перейти на INSERT вместо курсора
- I: перейти в режим INSERT в начале строки
- A: добавить после курсора
- A: добавить в конце строки
- o: открыть новую строку под текущей строкой
- O: открыть новую строку вместо текущей
Теперь отвечаю на вопрос: выход.
Вы можете выйти из vi из режима EX:
- q: если вы не сделали никаких изменений или сохранили их заранее
- q !: игнорирует любые модификации и выходит
- WQ: сохранить и выйти
- х: это равно WQ
w
и x
принимают параметр имени файла. Если вы запустили vi с именем файла, вам не нужно указывать его здесь снова.
Наконец, самое важное: как добраться до режима EX?
Режим EX предназначен для длинных команд, которые можно увидеть, набрав в нижней строке экрана. В режиме КОМАНДЫ вы нажимаете двоеточие, :
, и в нижней строке появится двоеточие, где вы можете ввести вышеупомянутые команды.
В режиме INSERT вам нужно нажать ESC, т.е. кнопку Escape, перейти в режим COMMAND, а затем:, чтобы перейти в режим EX.
Если вы не уверены, нажмите ESC, и это приведет вас в командный режим.
Итак, надежный метод ESC-: - x-Enter, который сохраняет ваш файл и завершает работу.
Ответ 4
Если вы хотите выйти без сохранения в Vim и заставить Vim возвращать ненулевой код выхода, вы можете использовать :cq
.
Я использую это все время, потому что я не могу быть обеспокоен мизинцем !
, Я часто передаю в Vim вещи, которые не нужно сохранять в файле. У нас также есть странная оболочка SVN на работе, которую нужно завершить с ненулевым значением, чтобы прервать регистрацию.
Ответ 5
Насколько мне известно, vim невозможен. Покупка нового компьютера решила проблему для меня.
Ответ 6
Это для наихудшего сценария выхода из Vim, если вы просто хотите выйти, понятия не имеете, что вы сделали, и вам все равно, что произойдет с файлами, которые вы открыли.
Ctrl-c Enter Enter vi
Enter Ctrl-\ Ctrl-n :qa!
Enter
Это должно вытащить тебя большую часть времени.
Несколько интересных случаев, когда вам нужно что-то вроде этого:
-
i
Ctrl-o vg
(вы входите в режим вставки, затем в визуальный режим, а затем в режим ожидания оператора)
-
Qappend
Enter
-
i
Ctrl-o gQ
Ctrl-r =
Ctrl-k (благодаря Поргес для этого случая)
-
:set insertmode
(это тот случай, когда Ctrl-\ Ctrl-n возвращает вас в нормальный режим)
Изменение: Этот ответ был исправлен из-за случаев выше. Это было:
Esc Esc Esc :qa!
Enter
Однако это не сработает, если вы вошли в режим Ex. В этом случае вам нужно будет сделать:
vi
Enter :qa!
Enter
Итак, полная команда: "Я не хочу знать, что я сделал, и я не хочу ничего сохранять, я просто хочу сейчас!" было бы
vi
Enter Esc Esc Esc :qa!
Войти
Ответ 7
Если вам нужно выйти из Vim в простом режиме (при использовании -y
), вы можете войти в обычный режим Vim, нажав Ctrl + L, и тогда любой из нормальных вариантов выхода будет работать.
Ответ 8
Vim имеет три режима работы: режим ввода, командный режим и режим Ex.
Режим ввода - все, что вы вводите, все нажатия клавиш отображаются на экране.
Командный режим или режим Escape - все, что вы вводите в этом режиме, интерпретируется как команда.
Ex mode - это другой редактор, ex. Это линейный редактор. Он работает на строку или на основе ряда строк. В этом режиме в нижней части экрана появляется :. Это бывший редактор.
Чтобы выйти из Vim, вы можете выйти, находясь в режиме ex или в командном режиме. Вы не можете выйти из Vim, когда находитесь в режиме ввода.
Выход из режима ex
-
Вы должны быть уверены, что находитесь в командном режиме. Для этого просто нажмите клавишу Esc.
-
Перейдите в режим ex, нажав клавишу :
-
Для выхода используйте любую из следующих комбинаций в режиме ex:
:q
- выйти :q!
- выйти без сохранения :wq
- сохранить и выйти или написать & выйти :wq!
- аналогично wq, но принудительная запись в случае, если права доступа к файлу доступны только для чтения :x
- write & quit :qa
- выйти из всех. полезно, когда открыто несколько файлов, например: vim abc.txt xyz.txt
Выход из командного режима
-
Нажмите клавишу выхода. Вы, вероятно, уже сделали это, если находитесь в командном режиме.
-
Нажмите заглавную ZZ (shift zz
ZZ) - сохранить и выйти
-
Нажмите заглавную ZQ (shift zq
) - выход без сохранения.
Ответ 9
На самом деле невероятно легко бросить vim
.
Нажмите Escape, дважды обернитесь, пните кота, приготовьте идеальную чашку чая, пройдите четырехмильную милю, поднимитесь на Эверест, сделайте Кессельский забег менее чем за 12 parsecs, спасите Кобаяси Мару, захватите железный трон, достигните мира во всем мире, нажмите :q!
Enter
Ответ 10
После нажатия ESC (или cmd + C на моем компьютере) вы должны нажать : для появления командной строки. Затем вы можете ввести quit
.
Вы можете обнаружить, что машина не позволит вам выйти, потому что ваша информация не была сохранена. Если вы все равно хотите выйти, введите ! непосредственно после выхода (т.е. :quit!
).
Ответ 11
Я получил Vim, установив в Windows клиента Git. :q
не выйдет из Вима для меня. :exit
однако...
Ответ 12
Я хотел бы добавить свои два цента на этом. Вопрос был задан здесь.
Команда q
с номером закрывает данное разделение в этой позиции.
:q<split position>
или :<split position>q
закроет разделение в этой позиции.
Допустим, ваш макет окна Vim выглядит следующим образом:
-------------------------------------------------
| | | |
-------------------------------------------------
| | | |
| | | |
| Split 1 | Split 2 | Split 3 |
| | | |
-------------------------------------------------
Если вы запустите команду q1
, она закроет первый сплит. q2
закроет второй сплит и наоборот.
Порядок позиции разделения в команде quit не имеет значения. :2q
или :q2
закроет второй сплит.
Если позиция разделения, которую вы передаете команде, больше, чем количество текущих разделений, она просто закроет последнее разделение.
Например, если вы запустите q100
в приведенной выше настройке окна, где есть только три разделения, оно закроет последний раздел (Разделение 3).
Ответ 13
Выход из Vim
- Ctrl + Z
- X key
- C key
Ответ 14
Нажмите Escape, затем
:q
для выхода (сокращение для: выход)
:q!
выйти без сохранения (сокращение для: выход!)
:wq
писать и уходить (думать писать и уходить)
:wq!
для записи и выхода, даже если файл имеет только разрешение на чтение (если файл не имеет разрешения на запись: force write)
Ответ 15
Просто нажмите кнопку Esc
.
Затем нажмите Shift
+ двойной щелчок на кнопке z
означает Shift zz
, который сохранит файл и выйдет.
Ответ 16
Закройте свой терминал и откройте новый!
Ответ 17
Пример хорошего троллинга в stackoverflow :) LOLz
Так много ответов с такими замечательными объяснениями. Я думаю, что @jclancy означало "буквально печатать".
Потому что для "обычного" пользователя "Выход vi" - это фильм ужасов.