Как мне выйти из Vi?

81

Я запустил Vi на своей машине с Ubuntu. Однако я новичок в Vi, и теперь я не могу выйти. Я вижу редактор и могу писать текст, в нижней строке есть метка «запись».

Как мне выйти из Vi?

Jonas
источник
1
Кстати, «запись» означала, что вы записывали макрос. Не то, что это имеет значение больше.
20.10.10
4
Этот вопрос возвращает такие "забавные" воспоминания. Однако я так рад, что преодолел это чувство.
безумно
Как мы можем вернуться в режиме вставки из режима только для чтения в Linux (Ubuntu в VMware установлена) VI Editor?
2
Выход из Vim теперь стал мемом.
noɥʇʎԀʎzɐɹƆ
2
Для тех, кто еще не видел эту шутку: twitter.com/iamdevloper/statuses/435555976687923200
Федерико Полони

Ответы:

91

vim - модальный редактор . Нажмите ESCклавишу, чтобы войти в обычный (командный) режим, затем напечатайте :qи нажмите Enter.

Чтобы выйти без сохранения изменений, введите :q!и нажмите Enter.

См. Также документация « Выход из Vim».

Синан Юнюр
источник
9
Спасибо: Я пытался , что команды, но после запуска их я запрошено: E37: No write since last change (add ! to override). Мне нечего спасти.
Джонас
12
Используйте, :wqесли вы хотите сохранить то, что отредактировали, а затем выйти. :q!если вы хотите выйти и оставить свои изменения позади.
Стивен Д
Или, если вы написали что-то, для чего хотите сделать копию, то решите :w newFileName.txtпроблему только для чтения вне vi или vim .
Кевин Канту
5
бросить :q; принудительный выход :q!; выйти и сохранить :wqили:x
fromnaboo
2
@Jonas, в следующий раз попробуй :qall!, я подозреваю, что ты открыл больше файлов в одном буфере.
Алан Донг
11

Я использую ctrl+, [чтобы сгенерировать escпоследовательность, это избавляет меня от необходимости отводить пальцы от домашнего ряда (помните, что escключ был в другом месте, когда viбыл изобретен. :wqБуду записывать все файлы независимо от необходимости. Я предлагаю использовать ZZ(что shift+ zдважды ), который будет записываться только в том случае, если в файл было внесено изменение. Также :xaто же самое, что и в том ZZслучае, если в экземпляре редактора (например, на вкладках vim) открыто более 1 файла. Примечание: я не уверен, что все это 100% совместим со всеми клонами vi, но я знаю, что это работает с vim

xenoterracide
источник
1
Благодарю. Команда ZZкажется полезной. Я вижу смысл в этом, Ctrl+[но я использую шведскую раскладку клавиатуры, и мне нужно нажать, AltGr+8чтобы получить [то, что было бы Ctrl+AltGr+8для меня :(
Jonas
Также примечание ZQэффективно так же, как :q!. Однако это не стандартно. ZZс другой стороны, это указано в POSIX .
Wildcard
4

Выйти из ви это еще один способ Esc :x.

Опция используется для сохранения и выхода одновременно.

loganaayahee
источник
2
Обратите внимание, что, как ZZ, :xнапишет файл, только если его содержимое изменилось, в отличие от :wq.
Jlliagre
2

Как сказал Синан, vim - модальный редактор. Если вы хотите знать, работает ли это для вас, вам, возможно, стоит потратить некоторое время и vimtutorзаняться, что является интерактивным способом изучения vim. (Здесь также рассказывается, как выйти, что означают режимы и что вы можете делать в каждом режиме).

Tante
источник
-2

После внесения изменений нажмите ESCи данную команду :wq!.

Это принудительно запишет новую модификацию в файл только для чтения. Ранее это не работало, потому что файл только для чтения.

Ариф А.
источник
1
Почему вы отвечаете на вопрос 4 года назад, в основном повторяя топ-ответ? В любом случае это неправильно: это не заставит писать файл только для чтения - он попытается записать, может потерпеть неудачу, а затем принудительно завершит работу без сохранения.
Крис
Я попытался с предыдущими комментариями, и это не работало. Я подумал, что было бы полезно поделиться тем, что я сделал. Это не важно, когда вопрос был опубликован, но являются ли решения применимы или нет.
Ариф А.
-2

попробуйте комбинацию controlиZ

samsoty
источник
2
Это будет держать vi в фоновом режиме;
Archemar