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

44

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

    
задан Letseatlunch 02.02.2011 в 04:24
источник

6 ответов

64

В vim существует 3 разных режима:

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

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

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

  • :q - выйти, если никаких изменений не было.
  • :q! - выйти и уничтожить любые сделанные изменения.
  • :wq - записать изменения (сохранить) и выйти
  • :x - аналогично :wq , записывать файл только в том случае, если изменения были сделаны, а затем выйти из
ответ дан jondavidjohn 02.02.2011 в 04:34
источник
14

Сначала нажмите клавишу escape . 1

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

В качестве альтернативы вы можете набрать :q (a.k.a, " quit, please "). Это выйдет, только если вы не внесли изменения.

Если вы внесли изменения и хотите отменить их и уйти, наберите :q! (a.k.a " quit, damn it !")

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

ответ дан belacqua 02.02.2011 в 07:24
4

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

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

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

Редакторы вроде этого являются ловушками для неопытных. Мои личные предпочтения и рекомендации, когда они вынуждены редактировать текст в командной строке, используют вместо этого более понятный собственный Joe's Редактор (JOE) .

    
ответ дан ændrük 02.02.2011 в 04:58
3

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

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

    Ссылка

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

    Ссылка

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

    
ответ дан djeikyb 02.02.2011 в 05:15
1

if Esc :q! не работает,

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

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

    
ответ дан Gael P 26.05.2014 в 18:44
0

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

  1. Нажмите ESC
  2. Хит Z Q

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

  1. Нажмите ESC
  2. Хит Z Z
ответ дан Zoltan 10.04.2014 в 02:37