it-swarm.com.ru

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

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

"type :quit<Enter> to quit VIM"

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

3344
jclancy

Ударь 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, где вы можете найти ответы на все ваши вопросы и учебное пособие для начинающих.

4468
dirvine

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

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

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

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

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

  • :q[uit] Выйти из текущего окно . Выйдите из Vim, если это последнее окно. Это терпит неудачу, когда изменения были сделаны в current buffer .
  • :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 write и quit. Действительно, на них есть ссылки в документация Vim .

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

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

159
Nick Volynkin

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

Enter image description here

Я рисую это своим студентам каждый семестр, и они, кажется, потом понимают 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, который сохраняет ваш файл и завершает работу.

139
Gergely

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

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

71
Sue Spence

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

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

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

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

  • iCtrl-ovg (вы входите в режим вставки, затем в визуальный режим и затем в режим ожидания оператора)

  • QappendEnter

  • iCtrl-ogQCtrl-r=Ctrl-k (спасибо porges за этот случай)

  • :set insertmode (это тот случай, когда Ctrl-\Ctrl-n возвращает вас в нормальный режим)


Правка: Этот ответ был исправлен из-за случаев выше. Это было:

EscEscEsc:qa!Enter

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

viEnter:qa!Enter

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

viEnterEscEscEsc:qa!Enter

40
Heikki Naski

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

36
wsams

Vim имеет три режима работы: режим ввода, командный режим и режим Ex.

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

Командный режим или 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) - выйти без сохранения.

27
tovishalck

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

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

25
deleteMe

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

Нажмите Escape, дважды обернитесь, пните кота, приготовьте идеальную чашку чая, пробежите четыре минуты мили , поднимитесь на Эверест, совершите Kessel Run до 12 parsecs , спасите Кобаяси Мару , требуйте железный трон , достигните мир во всем мире , нажмите :qEnter

18
Caltor

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

16
Bjørn van Dommelen

Я хотел бы добавить мой два цента на этом. Вопрос был задан здесь .

Команда q с номером закрывает данное разделение в этой позиции.

:q<split position> или :<split position>q закроет разделение в этой позиции.

Допустим, ваш макет окна Vim выглядит следующим образом:

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

Если вы запустите команду q1, она закроет первый разделить. q2 закроет второй сплит и наоборот.

Порядок позиции разделения в команде quit не имеет значения. :2q или :q2 закроет второй сплит.

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

Например, если вы запустите q100 в вышеупомянутой настройке окна, где есть только три разделения, оно закроет последний раздел (Разделение 3).

5
Subash

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

Ctrl -> +Z -> +X -> +C
5
Alimov Shohrukh