Верьте или нет, как выйти из Vim — это один из самых популярных вопросов, которые Linux и другие новички Unix задают компьютерным профессионалам. Если вы не знаете, как выйти из Vim или любой другой реализации vi, то вам не о чем стесняться. Это идет с территорией того, чтобы быть новым для этих операционных систем. Это то, о чем даже многие разработчики спрашивают, когда впервые знакомятся с Vim и vi, потому что они так привыкли к другим средам.
Для целей данного руководства мы предполагаем, что вы уже находитесь в Vim или в другой версии редактора vi. Большая часть этого совета должна работать независимо от того, запустили ли вы его из командной строки с помощью команды vi или vim, и он должен работать, даже если вы использовали команду busybox vi. Вы можете запустить командный терминал любым из обычных способов начать работу, но если вы хотите закрыть vi, то, вероятно, вы уже внутри него.
Способ 1: быстрый выход из Vim
Если вы просматривали это руководство, потому что вы случайно вошли в Vim или vi и просто хотите выйти без сохранения какой-либо работы, введите : Д! и нажмите ввод. Это должно вывести вас из редактора. Если это не так, нажмите клавишу Escape (Esc) и введите: q! с последующим вводом. Вы вернетесь в командную строку, удалив любые изменения, которые могли внести. Вам не нужно беспокоиться о внесении каких-либо постоянных изменений в любой файл таким образом!
Читайте дальше, чтобы узнать больше, или если вы хотите сохранить свою работу.
Метод 2: Техника Vim Save и Выйти
Хотя это немного сложно для тех, кто не знаком с Vim или vi, эти редакторы модальны. Это означает, что есть режим вставки, в котором вы фактически вводите текст в документ, и командный режим, в котором вы вводите команды, как если бы вы были в любой другой командной строке, хотя структура команд сильно отличается от той, к которой вы, вероятно, привыкли Баш или что-то в этом роде. Помните, что эти команды не совпадают с командами в командной строке, а работают только в Vim или vi.
Чтобы переключиться в командный режим в Vim или vi, нажмите клавишу Esc. Вы также можете использовать Ctrl + [в качестве ярлыка, так как клавиша Esc находится далеко от буквенных клавиш на современной клавиатуре. Теперь вы можете напечатать : WQ и нажмите Enter, чтобы сохранить то, что вы отредактировали, а затем выйти. Аббревиатура означает запись и выход, поэтому ее легко запомнить: wq как команда. Если вы не внесли изменений, наберите : д и нажав Enter вернется.
Если вы внесли изменения, команда: q сообщит о наличии несохраненных изменений. Вы можете потерять свои изменения и просто выйти из редактора с : Д! команда. Это была команда, которую мы ранее советовали использовать новым пользователям, если они случайно вошли в Vim и захотели выйти. Тем не менее, это сбрасывает ваши изменения, поэтому вы потеряете все, над чем работали.
Если вы запустили vi без какого-либо имени файла и попытались сохранить изменения, вы получите сообщение об ошибке «Нет такого файла или каталога», поскольку вы не указали имя. Введите: w, а затем имя файла, чтобы сохранить его после того, как вы вошли в командный режим, нажав Esc или Ctrl + [, а затем вы можете выполнить: q, чтобы выйти из него. Вы также можете использовать: w и имя файла, если вы открыли файл для редактирования и хотите сохранить его под другим именем перед выходом.
Помните, что вам нужно вводить двоеточие для любой команды, которая его имеет, потому что она фактически является частью команды, но в противном случае вы не должны вводить ее. Например, вы можете ввести ZZ без двоеточия, чтобы сохранить изменения, если вы их сделали, но выйти из редактора без сохранения, если изменений нет. Это немного быстрее, чем писать изменения, если их не было. Другой способ сделать это — удерживать нажатой клавишу Shift, а затем дважды нажать и отпустить клавишу Z. Это легко представить себе как сочетание клавиш.
Хотя все это может показаться очень сложным, с практикой это становится намного проще. Вы можете набрать vim и нажать enter, чтобы войти в него из любой обычной командной строки, а затем попрактиковаться в этих методах выхода, чтобы улучшить их. Иногда вы можете обнаружить, что если вы только начнете печатать, то окажетесь в режиме вставки. Вы всегда можете нажать Escape, чтобы выйти из режима вставки в любое время. Несколько реализаций vi переведут вас в режим вставки, если вы нажмете клавишу Insert, но вы все равно можете нажать Esc и затем набрать: q! быстро выйти из редактора.
Есть еще одна дополнительная техника, которую вы также можете использовать. В зависимости от вашей версии vi, вы можете набрать и нажмите Enter, чтобы выйти. Пожалуйста, имейте в виду, что это не будет работать со всеми версиями vi, но в тех, что он делает, он будет записывать измененный файл почти так же, как и wq.