Вопрос: Как выйти из редактора Vim?


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

"type :quit<Enter> to quit VIM"

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


2622


источник


Ответы:


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

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

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

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


3647



Прежде чем вводить команду, ударь Esc ключ , После того, как вы введете его, нажмите Вернуть подтвердить.

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

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

Команды, отмеченные '*', являются Vim-only (не реализованы в Vi).

Safe-quit (сбой при несохраненных изменениях):

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

Prompt-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][!]* Quit Vim, все изменения в буферах (включая скрытые) теряются.

Нажмите Вернуть для подтверждения команды.

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

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

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


132



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

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


65



Фотографии стоимостью 1000 команд и опций unix:

enter image description here

Я рисую это своим ученикам в каждом семестре, и они, похоже, понимают vi после этого.

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

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

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

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

Теперь, отвечая на вопрос: уйти.

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

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

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

Наконец, самое главное: как вы можете достичь режима EX?

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

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

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

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


57



This is for the worst-case scenario of exiting vim if you just want out, have no idea what you've done and you don't care what will happen to the files you opened.

Ctrl-cEnterEnterviEnterCtrl-\Ctrl-n:qa!Enter

This should get you out most of the time.

Some interesting cases where you need something like this:

  • iCtrl-ovg (you enter insert mode, then visual mode and then operator pending mode)

  • QappendEnter

  • iCtrl-ogQCtrl-r=Ctrl-k (thanks to porges for this case)

  • :set insertmode (this is a case when Ctrl-\Ctrl-n returns you to normal mode)


Edit: This answer was corrected due to cases above. It used to be:

EscEscEsc:qa!Enter

However, that doesn't work if you have entered Ex mode. In that case you would need to do:

viEnter:qa!Enter

So a complete command for "I don't want to know what I've done and I don't want to save anything, I just want out now!" would be

viEnterEscEscEsc:qa!Enter


37



In case you need to exit Vim in easy mode (while using -y option) you can enter normal Vim mode by hitting Ctrl + L and then any of the normal exiting options will work.


32



After hitting ESC (or cmd + C on my computer) you must hit : for the command prompt to appear. Then, you may enter quit.

You may find that the machine will not allow you to quit because your information hasn't been saved. If you'd like to quit anyway, enter ! directly after the quit (i.e. :quit!).


23



VIM has 3 modes of operation: Input mode, Command mode & Ex mode.

Input mode - everything that you type, all keystrokes are echoed on the screen.

Command mode or Escape mode - everything that you type in this mode is interpreted as a command.

Ex mode - this is another editor, ex. It is a line editor. It works per line or based on a range of lines. In this mode, a : appears at the bottom of the screen. This is the ex editor.

In order to exit vim, you can exit while you are in either the ex mode or in the command mode. You cannot exit vim when you are in input mode.

Exiting from ex mode

  1. you need to be sure that you are in the Command mode. To do that, simply press the Escape key.

  2. Go to the ex mode by pressing the : key

  3. Use any of the following combinations in ex mode to exit:

:q - quit :q! - quit without saving :wq - save & quit or write & quit :wq! - same as wq, but force write incase file permissions are readonly :x - write & quit :qa - quit all. useful when multiple files are opened like: vim abc.txt xyz.txt

Exiting from command mode

  1. Press the escape key. You probably have done this already if you are in command mode.

  2. press capital ZZ (shift zz) - save & exit

  3. press capital ZQ (shift zq) - exit without saving.


21



I got Vim by installing a Git client on Windows. :q wouldn't exit Vim for me. :exit did however...


14



I would like to add my 2 cents on this. The question has been asked here.

The q command with number closes the given split in that position.

:q<split position> or :<split position>q will close the split in that position.

Lets say your vim window layout is as follows:

-------------------------------------------------
|               |               |               |
-------------------------------------------------
|               |               |               |
|               |               |               |
|    Split 1    |    Split 2    |     Split 3   |
|               |               |               |
-------------------------------------------------

If you run q1 command it will close the first split. q2 will close the second split and vice versa.

The order of split position in the quit command does not matter. :2q or :q2 will close the second split.

If the split position you pass to the command is greater than the number of current splits, it will simply close the last split.

For example, if you run the q100 on the above window setup where there are only 3 splits, it will close the last split (Split 3).


3



You can always try this :)

:! killall vim

1