Как выйти из vim linux

Обновлено: 21.11.2024

Это одни из самых популярных вопросов о редакторе Vim. Vim, один из лучших редакторов для терминалов, известен своими мощными функциями. Его ярые пользователи клянутся им, но новых пользователей он сбивает с толку из-за его «необычных ярлыков». Это даже заставляет их задуматься, как выйти из редактора Vim.

В этой статье я покажу вам несколько способов выхода из Vim. Мы также узнаем несколько интересных фактов о выходе из Vim.

Как выйти из Vim?

Как вы уже видели в дополнительных советах по Vim, есть несколько способов выйти из Vim. Позвольте мне перечислить их один за другим вместе с процедурой.

Шаг 1. Войдите в командный режим, нажав клавишу Esc

Нажмите клавишу Esc: это очень важно, потому что вы должны сначала выйти из режима редактирования, прежде чем вводить команды выхода.

Шаг 2. Выйдите из vim с помощью команд

Далее вы можете ввести одну из следующих команд, чтобы выйти из Vim в другом режиме:

  • :q (да, двоеточие включено в команду) — это закроет редактор. Это может подсказать вам, если вы пытаетесь выйти из Vim и есть несохраненные изменения.
  • :q! – Выйти из Vim без сохранения файла данных (все несохраненные изменения отбрасываются).
  • :wq — сохранить файл и выйти из Vim.

Шаг 3. Нажмите клавишу ввода

После того, как вы выбрали команду выхода, нажмите Enter, чтобы, наконец, выйти из Vim и закрыть редактор (но не терминал).

Обратите внимание, что когда вы нажимаете «:», в редакторе следующие нажатия клавиш отображаются в левом нижнем углу терминала.

Другие способы выхода из Vim

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

  • Esc + :x + Enter (сохранение и выход)
  • Esc + :qa + Enter (закрыть все открытые файлы)
  • Esc + Shift ZZ (сохранение и выход)
  • Esc + Shift ZQ (Выход без сохранения)

Теперь вам решать, как выйти из редактора Vim. Если вы спросите меня, вам следует выбрать первый метод.

Вы сохраняете (без выхода) с помощью команды :w, а затем можете использовать :wq для сохранения и выхода (w для сохранения и q для выхода). q для выхода легче запомнить.

Факты и интересное о выходе из Vim

Если вы чувствуете себя немного подавленным из-за того, что не знаете, как выйти из Vim, не делайте этого, потому что вы не единственный. По данным Stack Overflow, более миллиона разработчиков по всему миру искали способ выхода из Vim.

На самом деле уход из Vim стал темой для обсуждения в популярной культуре. Взять, к примеру, этот твит. Это одна из самых популярных насмешек над «сложностью» выхода из Vim:

Но иногда очевидные вещи не так очевидны. Забавно, что мы настолько привыкли к сочетаниям клавиш Ctrl+S, Ctrl+X, что сбиваемся с толку, когда нигде не находим такие же «стандартные» сочетания клавиш. Я имею в виду, что даже клавиши Ctrl+C для остановки команд здесь не работают.

Vim — отличный редактор. Если вы сможете освоить его особенности, ничего подобного больше не будет. Сисадмины особенно много времени проводят в командной строке. Освоение Vim действительно может быть полезным. По крайней мере, вы должны освоить основные команды vim.

Я надеюсь, что это руководство помогло вам сохранить и выйти из Vim. Поделитесь своим мнением и мыслями по этому поводу.

Vim — это текстовый редактор для Linux, основанный на старом редакторе Vi. Vim — это расширенная версия Vi; многие команды работают как для Vi, так и для Vim.

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

Примечание. В некоторых дистрибутивах Linux, таких как Ubuntu 18.04 и 20.04, может быть установлена ​​минимальная версия Vim. Следуйте нашему руководству, чтобы установить полную версию Vim на Ubuntu.

  • Система Linux
  • Доступ к окну терминала/командной строке (Действия > Поиск > Терминал)
  • Учетная запись пользователя с правами sudo или root (для редактирования некоторых файлов могут потребоваться повышенные права)

Примечание. Если вам нужен тестовый файл для тренировки, откройте окно терминала и введите vim test.txt . Затем нажмите букву i, чтобы переключиться в режим вставки, и введите несколько строк текста.

Выйти из Vim в Терминале

Чтобы выполнять команды в Vi/Vim, переключитесь в командный режим.

<р>1. Нажмите клавишу Esc.

<р>2. Вы должны увидеть, что метка ––INSERT–– исчезает из нижнего левого угла.

<р>3. Чтобы сохранить изменения перед выходом, введите :w , а затем Enter. Это сохранит любые сделанные изменения. В ответ Vim выведет имя файла, новый ли он и сколько символов было записано на жесткий диск.

<р>4. Чтобы выйти из Vi/Vim, введите :q и нажмите Enter.

Примечание. Хотите персонализировать интерфейс Vim и добавить подсветку синтаксиса? Узнайте, как изменить и использовать цветовые схемы Vim.

Выйти из Vim с помощью сочетания клавиш

В дополнение к командному режиму в Vim также есть возможность использовать сочетания клавиш:

  • Чтобы сохранить файл в Vim и выйти, нажмите Esc >Shift + ZZ.
  • Чтобы выйти из Vim без сохранения, нажмите Esc > Shift + ZX.

Дополнительные параметры команды для выхода из Vim

Вот список команд для выхода из Vim:

  • Esc — перейти в командный режим
  • :w — записать сделанные изменения
  • :q — выйти из Vim
  • :q! – выйти из Vim и отменить все изменения
  • :wq — сохраняет изменения и закрывает Vim
  • : x — сохранить внесенные изменения и выйти из Vim

Примечание. Не забудьте сначала ввести двоеточие ( : ), чтобы обозначить команду. Используйте клавишу Enter, чтобы активировать его.

Теперь у вас должно быть несколько способов выхода из текстового редактора Vi/Vim. Затем изучите другие важные команды Vim.

Дэйв Маккей

Дэйв Маккей
Писатель

Редактор vi сбивает с толку, если вы к нему не привыкли. Требуется секретное рукопожатие, чтобы выйти из этого приложения, если вы наткнулись на него. Вот как выйти из vi или vim в Linux, macOS или любой другой Unix-подобной системе.

Быстрый ответ

Если вы работаете в vi или vim и вам нужно выйти — с сохранением изменений или без них — вот как это сделать:

  • Сначала несколько раз нажмите клавишу Esc. Это гарантирует, что vi перейдет из режима вставки в командный режим.
  • Во-вторых, введите :q! и нажмите Enter. Это говорит vi выйти без сохранения каких-либо изменений. (Если вы хотите сохранить изменения, введите вместо этого :wq.)

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

vi, вездесущий редактор

Поскольку vi есть везде, велика вероятность, что вы столкнетесь с ним. Вы даже можете случайно оказаться внутри vi. Возможно, кто-то попросит вас взглянуть на его компьютер с Linux. Вы вводите команду вроде crontab -e , и появляется vi. Удивительно, но кто-то настроил редактором по умолчанию для crontab vi .

Возможно, вы управляете системой, в которой vi является единственным редактором или единственным, который будет работать через удаленный сеанс SSH, и вам нужно отредактировать пользовательский файл .bashrc.

Команда для запуска vi и открытия файла проста. Введите vi , пробел, а затем имя файла. Нажмите Ввод. Запускаемой программой может быть vi или vim, «улучшенный vi». Это зависит от вашего дистрибутива Linux — например, Ubuntu использует vim. Все инструкции в этой статье в равной степени применимы к vim .

Сразу заметная разница между vi и другими редакторами заключается в том, что при запуске vi вы не можете просто начать печатать текст. Это потому, что vi — это модальный редактор. Редактирование осуществляется в одном режиме, режиме Вставки, а выдача команд производится в Командном режиме. vi запускается в командном режиме.

Если вы не знакомы с понятиями режима вставки и командного режима, это может сбить с толку. Многие команды, которые вы можете выполнять в командном режиме, влияют на файл, который вы печатаете. Если вы находитесь в командном режиме, но по ошибке пытаетесь ввести текст в свой файл, это плохо кончится. Некоторые нажатия клавиш будут распознаваться как команды. Эти команды могут удалять или разделять строки, перемещать курсор или удалять текст.

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

Командный режим и режим вставки

Вам нужно переключить vi в режим, соответствующий тому, что вы пытаетесь выполнить.

Командный режим является режимом по умолчанию при запуске vi. Если вы не знаете лучше, вы начнете пытаться печатать. Если вы случайно нажмете клавишу «i» или любую из 10 других клавиш, которые вызывают режим вставки (a, A, c, C, I, o, O, R, s и S), вы внезапно увидите, что вы печатаете. Теперь вы находитесь в режиме вставки.

Это может показаться прогрессом, пока вы не нажмете одну из клавиш со стрелками. Если вы это сделаете, A, B, C или D будут отображаться как единственная буква в пустой новой строке. В верхней части файла.

Все в порядке, мы вас поддержим. Это удивительно легко, когда вы знаете, как это сделать. Запомните эти два нажатия клавиш: Esc переводит вас в командный режим, а «i» — в режим вставки.

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

От командного режима к безопасности

Чтобы войти в командный режим, нажмите клавишу Esc. Ничего видимого не произойдет. Ударьте еще несколько раз. Если вы слышите звуковой сигнал при нажатии клавиши Escape, значит, вы находитесь в командном режиме. Звуковой сигнал говорит вам: «Прекратите нажимать Esc, вы уже находитесь в командном режиме». Если вы слышите звуковой сигнал, когда нажимаете клавишу ESC, все в порядке.

Введите двоеточие, букву «q» и восклицательный знак без пробелов. Эти три символа должны появиться в крайнем левом углу нижней строки терминала. Если нет, нажимайте Esc, пока не услышите звуковой сигнал, и повторите попытку. Нажмите клавишу Enter, когда увидите их:

В этой команде q является сокращением от quit . Восклицательный знак добавляет акцента, так что вы как будто кричите «Бросить!» в ви. Это может помочь вам почувствовать себя немного лучше.

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

После того как вы вернетесь в командную строку, вы можете перепроверить файл, чтобы убедиться, что он не был изменен. Вы можете сделать это с помощью следующей команды:

Если при выходе из vi вы видите сообщение «нет записи с момента последнего изменения», это означает, что вы пропустили восклицательный знак в команде. Чтобы предотвратить выход из программы и потерю изменений, которые вы хотели бы сохранить, vi дает вам возможность сохранить их. Просто перевыпустите :q! с восклицательным знаком для выхода из vi и отмены любых изменений.

Если вы уверены, сохраните изменения

Если вас устраивают изменения, внесенные в файл, вы можете выйти и сохранить изменения с помощью команды :wq (записать и выйти). Прежде чем продолжить, убедитесь, что вы полностью удовлетворены тем, что хотите, чтобы изменения экрана записывались в файл.

Введите двоеточие, букву w (написать) и букву q (выйти). Нажмите клавишу Enter, когда вы увидите их в левом нижнем углу терминала:

Кривая обучения того стоит

Использование vi немного похоже на использование пианино. Вы не можете просто сесть и использовать его; вам нужно немного попрактиковаться. Сидеть холодно и пытаться учиться на лету, когда на вас давят, чтобы что-то отредактировать, — это не способ сделать это. Это так же важно, как сесть за пианино в первый раз, когда поднимается занавес перед первым концертом.

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

До тех пор, если вы окажетесь в vi и просматриваете важный файл, просто :q! и выйти изящно. Ваш важный файл будет вам благодарен.

  • › Как управлять доступом к sudo в Linux
  • › Apple выпускает долгожданные MacBook Pro
  • ›5 шрифтов, которые следует прекратить использовать (и лучшие альтернативы)
  • › Почему прозрачные чехлы для телефонов желтеют?
  • › Как восстановить метки панели задач в Windows 11
  • › Как установить Google Play Маркет в Windows 11
  • › Худшее, что есть в телефонах Samsung, — это программное обеспечение Samsung.
  • › Что означает XD и как вы его используете?

Я использую Vim с первого года, когда начал программировать. Для всех IDE/редакторов, которые я использовал, подключаемый модуль Vim всегда был самым первым подключаемым модулем, который я устанавливал.

Я знаю, что людям, незнакомым с Vim, может быть сложно работать. В этой статье мы рассмотрим некоторые основные темы, например, как выйти из Vim, а не закрыть Vim.

Я также включу команду, которую вы можете использовать для отображения соответствующей справочной документации. Для этого сначала нам нужно несколько раз нажать ESC и выполнить предоставленную команду, например, :h vim-modes, и нажать Enter.

TL;DR — Как выйти из Vim

  1. Нажмите ESC один раз (иногда дважды)
  2. Убедитесь, что вы используете метод ввода на английском языке.
  3. Следующий шаг зависит от текущего статуса и ваших ожиданий:
    • Если вы не вносили никаких изменений, введите :q и нажмите Enter/return
    • Если вы внесли некоторые изменения и хотели бы их сохранить, введите :wq и нажмите Enter/return
    • Если вы внесли какие-то изменения и хотите их отменить, введите :q! и нажмите Enter/возврат

Если вы хотите подробнее понять, как это работает, давайте углубимся.

Что такое режимы в Vim?

В Vim есть семь ОСНОВНЫХ режимов и семь дополнительных режимов, которые считаются вариантами ОСНОВНЫХ режимов. Вы можете запустить :h vim-modes внутри Vim, чтобы прочитать документацию, если хотите узнать больше.

К счастью, нам не нужно знать их все, чтобы начать. Но есть три режима, о которых нам нужно знать: обычный режим, режим вставки и режим командной строки.

Что такое обычный режим в Vim?

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

Скажем, если мы хотим прочитать документацию по vim-modes , нам нужно сначала убедиться, что мы находимся в обычном режиме, прежде чем вводить :h vim-modes . И самый каноничный способ войти в Обычный режим — нажать ESC. Даже если вы уже находитесь в обычном режиме, нажатие ESC сохранит его в обычном режиме, так что не беспокойтесь.

Найдите это в документации: :h Normal , :h mode-switching .

Что такое режим вставки в Vim?

Режим вставки используется для редактирования текущего файла (в Vim это обычно называется буфером). По умолчанию мы находимся в обычном режиме сразу после открытия файла. Если нам нужно внести изменения в текущий файл, сначала нам нужно переключиться в режим вставки.

Самый распространенный способ сделать это переключение – нажать i в обычном режиме после перемещения курсора к месту, которое мы собираемся редактировать.

На самом деле существует множество других способов входа в режим вставки, например o , O , a , A , I и т. д.

Найдите его в документации: :h Insert , :h i_ , :ho , :h O , :h a , :h A , :h I .

Что такое режим командной строки в Vim?

Режим командной строки обычно является "кратковременным" режимом, который используется для запуска "команд Ex" (не путать с "командами" в обычном режиме).

Забавный факт: Vim на самом деле является сокращением от Vi Improved и основан на другом текстовом редакторе под названием vi . А vi основан на линейном редакторе ex. И vi, и ex были разработаны Биллом Джоем.

Еще один забавный факт для пользователей macOS: в macOS есть только Vim, а команда vi имеет символическую ссылку на vim . Также обратите внимание, что «команда Ex» в режиме командной строки отличается от «команды» в обычном режиме.

Вы можете войти в режим командной строки, набрав: в обычном режиме. Например, если вы запускаете приведенные выше команды для просмотра документации, вы фактически используете режим командной строки, как только вводите: .

Аналогичным образом нажмите ESC, если хотите вернуться в обычный режим.

Найдите его в документации: :h Command-line , :h cmdline-lines .

Как выйти из Vim

документация :h quit

Если вы посмотрите документацию по :h quit , обратите внимание, что quit имеет префикс : . Это означает, что выход используется в режиме командной строки.

Чтобы войти в режим командной строки, сначала нам нужно убедиться, что мы находимся в обычном режиме, а затем просто введите: . Теперь, когда мы находимся в режиме командной строки, просто введите quit и нажмите Enter или return .

Вы также можете заметить там :q, который на самом деле является сокращенной версией команды :quit.При этом мы также можем выйти из Vim, выполнив :q .

Однако упоминается, что эта команда завершится ошибкой, «когда были внесены изменения и Vim отказывается отказаться от текущего буфера» (если вы еще помните, буфер — это просто открытые файлы, ничего необычного).

В этом случае нам нужно использовать :wq , что означает "написать и выйти". Вы можете найти это в документации в разделе :h :wq .

:x — еще одна команда, которая работает почти так же, как :wq. Согласно :h :x , это «похоже на :wq, но писать только тогда, когда были внесены изменения».

Разница здесь в том, что :wq сохранит файл независимо от того, вносили вы в него изменения или нет. :x не сохранит файл, если вы не внесли никаких изменений. Здесь важно время модификации файла, так как :wq обновит время модификации, а :x нет.

В некоторых случаях мы бы предпочли не сохранять внесенные нами изменения. На данный момент нам нужен :q! команда. ! обычно упоминается как «взрыв», что делает q! что-то вроде "принудительного выхода".

Обратите внимание, что если вы воспользуетесь этим способом, вы ПОТЕРЯЕТЕ все изменения, внесенные в этот файл, и вы почти не сможете их восстановить.

Как устранить неполадки при выходе из Vim

Что делать, если я не хочу входить в режим командной строки?

Не проблема. В обычном режиме вы также можете нажать ZZ или ZQ, чтобы выйти из Vim. Где ZZ совпадает с :x, а ZQ совпадает с :q! .

Здесь ZZ и ZQ считаются командами нормального режима, а :x и :q! являются Ex-командами.

Что делать, если :wq не удалось?

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

Обратите внимание, что когда файл доступен только для чтения, Vim не будет мешать вам открывать и редактировать файл. Вы также можете обнаружить, что :wq! в этот момент тоже не сработает. Вы можете отменить все изменения с помощью :q! и откройте тот же файл с префиксом sudo и внесите те же изменения еще раз.

Одна вещь, которую вы можете сделать, это сохранить этот файл в другом каталоге, для которого у вас есть разрешение на запись, например ~ или даже /tmp . Затем переместите его обратно в каталог, в котором у вас нет прав на запись.

Для этого вы можете запустить :w ~/my-backup-file, который сохранит этот файл в каталоге ~ . Затем вы можете использовать команду mv для перемещения этого файла. Также обратите внимание, что это то, что вам нужно сделать, когда Vim жалуется на отсутствие имени файла.

В Vim есть еще одно решение. Вы можете запустить эту команду: :w !sudo tee % . Здесь !sudo означает запуск команды sudo в вашей среде оболочки.

Например, :ls выведет список всех буферов в Vim, а :!ls запустит команду ls из оболочки и отобразит результат. tee копирует со стандартного ввода (также известного как stdin ) на стандартный вывод (также известного как stdout ). % относится к текущему имени файла.

Это означает, что мы используем команду sudo из среды оболочки, копируем содержимое текущего файла (примечание: измененная версия) из Vim и перенаправляем измененное содержимое в файл (на который ссылается имя файла). .

Предупреждение об изменении содержимого файла

Вы заметите предупреждение выше. Это предупреждение возникает из-за того, что содержимое файла было обновлено в среде оболочки без внимания Vim. Поэтому Vim считает это внешним изменением и сообщает вам, что произошло.

В этот момент вы можете просто нажать Enter, так как вы намеренно внесли внешнее изменение.

Вы также можете заметить, что измененное содержимое файла отображается над предупреждающим сообщением. Это ожидаемо, так как исходит из stdout . Если вы не хотите его видеть, вы можете сделать :w !sudo tee% >/dev/null , что приведет к отбрасыванию stdout из tee .

Что, если я потеряюсь и мне придется принудительно выйти?

Что ж, если мы попробуем выйти, нажав control + c , Vim покажет нам приведенную выше информацию. Но вы все равно можете обойти это с помощью Ctrl + Alt + Delete в Windows или Force Quit. на macOS.

В следующий раз, когда вы снова попытаетесь открыть тот же файл, вы должны увидеть это (в качестве примера я использую файл с именем foo.txt):

файл подкачки

Не паникуйте — это ожидаемо, поскольку Vim пытается помочь вам восстановить ценные изменения, которые вы могли потерять.

Проверив каталог, вы найдете файл с расширением .swp . Это файл подкачки (документация: :h файл подкачки):

файл подкачки .swp

Мы увидим следующее, если нажмем R для восстановления:

.swp восстановление

После нажатия Enter вы заметите, что изменения, внесенные ранее, вернулись. И после того, как вы закончите процесс восстановления, вы можете просто удалить файл .swp, чтобы больше не видеть вышеописанную ошибку.

Заключение

В этой статье мы рассказали о некоторых основных режимах Vim и о том, как выйти из Vim. Мы также узнали, как решать распространенные проблемы, связанные с выходом из Vim.

Спасибо, что прочитали. Когда дело доходит до Vim, нужно еще многому научиться. Но не стесняйтесь изучать справочную документацию Vim, если хотите узнать больше.

Читайте также: