Как закрыть vim из командной строки?

Я знаю, что это скорее общий вопрос linux, но w / e. Поэтому, когда я ввожу такую программу, как vim, в командной строке, она отображает весь текст в файле, и я могу редактировать его и т.д. Но я не могу понять, как закрыть или сохранить файл и вернуться к командной строке, не прерывая процесс. Любая помощь приветствуется.

В vim есть 3 различных режима:

  • Вставка - позволяет вводить и редактировать текст в обычном режиме.
  • Визуальный - используется для выбора копирования / вставки и т.д.
  • Обычный - используется для команд

Чтобы вернуться в обычный режим, вы всегда можете нажать esc.

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

  • :q - выйти, если никаких изменений внесено не было
  • :q! - завершите работу и уничтожьте все внесенные изменения
  • :wq - внесите изменения (сохраните) и завершите работу
  • :x - похоже на :wq, запишите файл только в том случае, если были внесены изменения, а затем завершите работу

Во-первых, нажмите на escape ключ.1

Затем просто введите ZZ (это две заглавные буквы Z подряд).
Или введите :x . Либо сохранит любые изменения и уйдет.
Вы также можете использовать :wq

В качестве альтернативы вы можете ввести :q (он же, "уходи, пожалуйста") Это завершится только в том случае, если вы не вносили изменений.

Если вы внесли изменения и хотите отменить их и оставить, введите :q! (он же "уходи, черт возьми!")

1 : Это гарантирует, что вы находитесь в "командном" режиме. Который вам нужен для ввода команд, например тех, которые необходимы для выхода.

К большому нашему неудобству, не существует общего метода выхода из программ командной строки, такого как кнопка "X" для графических программ.

Многие программы командной строки придерживаются темы использования либо Q (например man и top) или Ctrl+C (например ping и watch) для выхода, но это значительно варьируется, особенно среди текстовых редакторов:

  • Сила в частности, используется неясная комбинация :q! затем Enter, обычно предшествующему нескольким нажатиям Esc для пущей убедительности.
  • Emacs, еще один драгоценный камень, предпочитает Ctrl+X с последующим Ctrl+C.

Редакторы, подобные этому, - ловушки для неопытных. Мои личные предпочтения и рекомендации заключаются в том, чтобы при необходимости редактировать текст в командной строке использовать вместо этого более понятный Собственный редактор Джо (ДЖО).

Наряду с ответом Джондавидджона, вот две ссылки, которые содержат необходимую информацию об использовании vim.

  1. Это изображение клавиатуры, которое показывает вам, что делает каждая клавиша, в зависимости от того, находитесь ли вы в режиме редактирования, командном режиме или визуальном режиме:

    http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html

  2. Это лучший учебник по vim, с которым я когда-либо работал. Он разговорный и понятный, что связано с его форматом IRC / обмена мгновенными сообщениями.

    http://www.vi-improved.org/tutorial.php

Наконец, есть такие, как aendruk, которые просто не хотят использовать продвинутые текстовые редакторы командной строки. Vim, в частности, имеет крутую кривую обучения, и на самом деле требуется некоторое первоначальное усилие, чтобы привыкнуть к нему. Но он очень быстрый и очень мощный. Если у вас есть интерес к Linux помимо базового использования на рабочем столе, стоит потратить время на изучение приличного текстового редактора командной строки, такого как Vim или Emacs. Если вам просто нужно отредактировать какой-то текст, и вам все равно, кроме этого, попробуйте ввести gedit filename.txt вместо. Он запустит знакомую графическую программу, очень похожую на Блокнот из Windows.

если Esc :q! не работает,

попробуй сначала Ctrl+q (чтобы разблокировать экран, который был заблокирован с помощью Ctrl+s)

затем повторите попытку Esc :q! (чтобы выйти без сохранения) или Esc :wq (чтобы сохранить и выйти)

Хотите выйти без сохранения:

  1. Удар ESC
  2. Удар ZQ

Выход с сохранением:

  1. Удар ESC
  2. Удар ZZ

https://twitter.com/iamdevloper/status/435555976687923200 :smiley:

Related across SE: How to exit the Vim editor?, this blog post, How to exit VIM and get back to ‘normal’ terminal?, How do I quit from Vi?, Exit vim more quickly, this tag wiki, and [What are the differences between :wq :x