Как выйти из vim
Перейти к содержимому

Как выйти из vim

  • автор:

Как выйти из Vim

Как выйти из Vim главное изображение

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

Как выйти из Vim Я впервые столкнулась с такой проблемой, когда проходила на Хекслете курс по Git и случайно забыла написать комментарий к коммиту. Меня выкинуло на непонятную страницу, с которой я не могла выйти. Не знаю почему, но команду выхода не удалось найти на первых ссылках результата поисковика, поэтому, надеюсь, что кому-то будет полезно =)

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

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

К счастью, нам не обязательно знать их все, чтобы начать работу. Но есть два режима , которые будет полезно знать: Normal Mode, Insert Mode.

Normal Mode имеет важное значение, поскольку только здесь мы можем запускать команды. Скажем, если мы хотим прочитать документацию vim-modes, мы должны сначала убедиться, что мы в Normal Mode, прежде чем вводить :h vim-modes. Войти в Normal Mode можно нажатием ESC.

Insert Mode вы используете для редактирования текущего файла (в Vim это обычно обозначается как buffer). По умолчанию мы оказываемся Normal Mode. Если нам нужно внести изменения в текущий файл, сначала нам нужно переключиться на Insert Mode. Наиболее распространенный способ сделать этот переключатель является нажатием i на Normal mode после наведения курсора на то место , которое мы будем редактировать.

И, когда мне становится грустно, с какой очевидной ошибкой я столкнулась, то всегда вспоминаю фразу из статьи:

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

Бесплатные курсы по программированию в Хекслете

  • Освойте азы современных языков программирования
  • Изучите работу с Git и командной строкой
  • Выберите себе профессию или улучшите навыки

Как выйти из редактора Vi или Vim?

Прежде чем ввести команду, нажмите Esc . Чтобы потом подтвердить команду, нажмите Enter .

Клавиша Esc переключает Vim в нормальный режим. Если в этом режиме нажать : (проверьте, что установлена английская раскладка и снят CapsLock, затем одновременно нажмите Shift и ; ), то символ : появится в нижней части экрана, и редактор перейдёт в режим командной строки. Это гарантирует, что вы сейчас именно вводите команду, а не редактируете файл. Помните, что регистр вводимых команд важен.

У большинства команд есть укороченные версии. Необязательная часть дается в квадратных скобках: к[оманда] .

Команды, данные курсивом , подходят только для Vim (не реализованы в Vi).

Выйти безопасно (не срабатывает, если есть не сохраненные изменения)

  • :q[uit] Выйти из текущего окна Vim. Если это окно — последнее, то выйти из Vim. Если в текущем буфере есть не сохраненные изменения, команда не сработает.
  • :qa[ll] Закрыть все окна и выйти из Vim. Не сработает, если хотя бы в одном буфере есть не сохраненные изменения.

Выйти с подтверждением (запрашивает подтверждение, если есть не сохраненные изменения)

  • :conf[irm] q[uit] Закрыть все окна и выйти из Vim. Запрашивает подтверждение, если есть буферы с не сохраненными изменениями.
  • :conf[irm] xa[ll] Сохранить все изменения, закрыть все окна и выйти из Vim. Запрашивает подтверждение, если какие–либо буферы не могут быть сохранены.

Записать (сохранить) изменения и выйти

  • :wq Записать текущий буфер в соответствующий ему файл (даже если изменений не было) и закрыть окно. :wqa[ll] для всех окон.
  • :wq! То же самое, но записывает даже файлы, отмеченные только для чтения (read-only). :wqa[ll]! для всех окон.
  • :x[it] , ZZ (но с некоторыми особенностями). Сохранить файл только если в нем есть изменения и выйти, :xa[ll] для всех окон.

Отменить (и потерять) изменения и выйти

  • :q[uit]! ZQ Выйти без сохранения, в том числе когда есть изменения в видимых буферах. Не сработает, если изменения есть также и в скрытых буферах.
  • :qa[ll]! , :quita[ll][!] Выйти без сохранения, отменяя все изменения как в видимых, так и в скрытых буферах.

Нажмите Enter чтобы выполнить введенную команду.

Этот ответ все-таки не охватывает все возможные способы выйти из Vim. Полный список можно найти в документации Vim.

На момент публикации все ссылки верны и ведут на англоязычную версию документации, но сайт временно недоступен. Когда он поднимется, я добавлю ссылки на русскоязычную версию.

Vim также имеет встроенную документацию. Чтобы ее открыть: Esc :help Enter . Чтобы использовать русскоязычную встроенную документацию, необходимо включить русскую локализацию в настройках Vim.

Это перевод собственного ответа на EN.SO. При написании использовалась документация Vim и, в качестве ориентира и источника вдохновения, ответы других пользователей, особенно @dirvine.

Текстовый редактор VIM — краткое руководство

url image

VIM (сокр. от Vi Improved, произносится «Вим») — текстовый редактор, созданный на основе более старого Vi. Ныне это один из мощнейших текстовых редакторов с полной свободой настройки и автоматизации. На выделенных серверах установлен VIM, также создан alias, который при вызове команды VI вызывает VIM. Если на сервере нет текстового редактора vim — его можно установить. Debian/Ubuntu:

# apt install vim

CentOS/AlmaLinux:

# yum install vim
  • 1. Режимы работы
  • 2. Основные команды VIM перемещения по тексту
  • 3. Работа с буфером
  • 4. Замена текста
  • 5. Как выйти из редактора VIM

Режимы работы

Существует три основных режима работы: команд, редактирования и последней строки.

Выход из режима редактирования осуществляется клавишей Escape (далее обозначена как esc), переход в режим редактирования клавишами i или insert.

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

Для того, чтобы открыть какой-то файл или создать новый, надо выполнить команду:

# vim путь_к_файлу/имя_файла

Например, чтобы отредактировать конфигурационный файл NGINX с помощью VIM, напишем:

# vim /etc/nginx/nginx.conf

Конечно, если вы только начинаете изучать VIM и плохо разбираетесь в работе сервисов Linux, лучше не трогать конфигурационные и системные файлы, чтобы что-нибудь не поломать. Для тренировки можно взять какой-нибудь большой текст и скопировать его в тестовый файл.

При запуске VIM по умолчанию открывается режим команд (или командный режим).

Чтобы перейти в режим редактирования, необходимо нажать клавишу i (или insert) и внести нужные изменения.

Если вместо i нажать a, текст будет вставляться за символом, на котором стоит курсор (обычно при редактировании файлов используется этот метод, но тут кому как удобнее), если нажать o — будет вставлена новая строка.

Стирать текст можно как в режиме редактирования (как в любом классическом редакторе), так и в режиме команд (клавиша esc, затем клавиша x — она работает как клавиша del, то есть стирает вперед, если нажать shift+x, то будет стирать назад по аналогии с backspace).

Чтобы перейти в режим последней строки, следует выйти в режим команд (клавиша esc), затем нажать на двоеточие (:). Далее можно либо ввести команду (рассмотрим команды далее), либо выйти обратно в режим команд (клавиша esc).

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

Основные команды VIM перемещения по тексту

1. Перейти к строке с номером:

(esc) :номер или (esc),номер,shift+g

2. Поиск по тексту:

(esc) /слово_которое_ищем

Например, ищем слово «timeout». Переходим в режим команд (esc), вводим / (слэш) и timeout. Курсор перейдет на первое слово timeout в файле. Чтобы перейти к следующему слову timeout в тексте, нажимаем n, чтобы перейти к предыдущему — нажимаем N. Как только находим нужное нам слово в тексте — выходим из поиска клавишей esc.

3. Переместить курсор на начало следующего слова:

(esc) w (можно, например, перейти на 3 слова, нажав 3w)

4. Переместить курсор на конец следующего слова:

(esc) e

5. Переместить курсор на начало предыдущего слова:

(esc) b

6. Переместить курсор на конец предыдущего слова:

(esc) ge

7. Переместить курсор на следующий абзац:

(esc) >

8. Переместить курсор в начало строки:

(esc) 0 (ноль)

9. Переместить курсор в конец строки:

(esc) $

10. Переместить курсор на 10 строк вниз:

(esc) 10j

11. Переместить курсор на 5 символов вправо:

(esc) 5l

12. Переместить курсор в конец документа:

(esc) G или shift+g

13. Переместить слово в начало документа:

(esc) gg

14. Переместить курсор в предыдущее место:

(esc) ctrl+o

Команд для перемещения по тексту в VIM намного больше, здесь мы рассмотрели только основные, которые помогут вам освоится в VIM.

Работа с буфером

В режиме команд в VIM можно работать со строками, не используя ctrl+c, ctrl+x и ctrl+v. В Linux вместо них можно использовать сочетания клавиш ctrl+insert (копировать) и shift+insert (вставить), но мы рассмотрим примеры работы с буфером в VIM.

(esc) dd — удаляет строку в буфер (аналог ctrl+x).
(esc) 10dd — удаляет 10 строк в буфер.
(esc) yy — скопирует строку в буфер (аналог ctrl+c).
(esc) 10yy — скопирует 10 строк в буфер.
(esc) p — вставит содержимое буфера под курсором.
(esc) P — вставит содержимое буфера над курсором (аналог ctrl+v).

Замена текста

Один из мощных инструментов VIM — замена слова в тексте на другое. В Linux есть инструменты для этого, однако с помощью VIM можно, например, заменить все слова в строке.

(esc):s/что_меняем/на_что_меняем/ — в данном случае меняем первое слово «что_меняем» в строке на «на_что_меняем».

(esc):s/что_меняем/на_что_меняем/g

где g обозначает замену до конца строки, в таком случае меняются все слова «что_меняем» в строке.

Если надо менять информацию по всему файлу, то тогда пишем символ % в начале команды:

(esc):%s/что_меняем/на_что_меняем/g

В VIM есть очень удобный функционал комментирования строк.

  • Комментировать блок текста от курсора до строки номер 10

. 10s/^/#/

  • Комментировать блок текста от курсора до конца

Как выйти из редактора VIM

Среди пользователей Linux много шуток о том, что можно зайти в VIM и не выйти. Однако выход всё же есть. Мы расскажем, как можно это сделать.

  • Стандартный выход осуществляется последовательностью нажатий (esc):q

Данная команда обычно используется в случаях, когда вы просто открыли VIM, чтобы что-то посмотреть, ничего не меняя. Если файл редактировался, то VIM не даст вам выйти, и вы увидите ошибку: E37: No write since last change (add ! to override). Если вы не хотите сохранять изменения, используйте следующую команду.

Добавив в конце восклицательный знак, мы как-будто твердо указываем VIM-у, что делать, игнорируя ошибки. Полезно, когда вы открыли файл, что-то в нем изменили или случайно что-то удалили и хотите выйти, не сохраняя изменения.

Добавив w, мы говорим VIM-у, что файл нужно сохранить с изменениями. Для начала рекомендуем научиться использовать режим последней строки, т.е. команды q! или wq. Со временем для ускорения работы можно начать использовать shift+zq и shift+zz.

  • Выход с принудительным сохранением (например, если файл read-only):

(esc):wq!

8 способов выйти из редактора Vim в Linux

Как выйти из Vim Ubuntu Featured

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

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

Случайно запустить Vim? Вот как быстро выбраться

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

Сначала вам нужно будет ввести клавишу : , а затем букву q , чтобы выйти. Чтобы выйти из Vim, введите следующее:

Если вы получаете сообщение об ошибке «Нет записи с момента последнего изменения (добавить! Для отмены)», вы случайно ввели текст или изменили файл. Вместо этого введите следующее:

Как выйти из Vim Ubuntu Simple Quit

Застрял в режиме вставки?

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

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

Как выйти без сохранения

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

Об одном варианте выхода без сохранения мы уже упоминали выше:

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

Как сохранить файлы и выйти

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

Если вы предпочитаете более короткие команды, следующие данные также сохранятся и завершатся:

Как выйти из Vim Ubuntu Сохранить Выход

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

Есть еще несколько способов быстро закрыть Vim. Сначала нажмите клавишу Escape , чтобы убедиться, что вы не находитесь в режиме вставки.

Удерживая нажатой клавишу Shift и нажав ZZ , вы сохраните и выйдите.

Удерживание Shift и нажатие ZQ приведет к выходу без сохранения.

Хотите узнать, как использовать Vim?

Как мы уже упоминали в начале статьи, Vim — мощный инструмент, который стоит знать. Даже если поначалу это кажется пугающим, знание редактора может быть очень полезным в будущем. Тем не менее, вы можете не знать, с чего начать.

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

3 комментария

Привет, Брэм Мооленаар Странный редактор.
Единственный выигрышный ход —
не открывать.
Я предпочитаю nano, когда мне нужно использовать простой редактор командной строки.

«Если вы часто работаете в командной строке, стоит изучить хотя бы некоторые из основных функций».
ПОЧЕМУ? Есть много других, гораздо более простых в освоении редакторов (нано). Vim / vi восходит к истокам Unix. Vim — архаичный редактор с загадочными командами и синтаксисом. Если вам удастся хорошо выучить его, он может оказаться мощным. Но Emacs тоже. Зачем изучать только «некоторые из основных функций»? Если вы злоупотребляете собой, вы можете попытаться научиться всему этому. Небольшое (частичное) знание может быть опасным.

Популярные посты

Как запускать команды Bash в фоновом режиме в Linux

5 лучших дистрибутивов Linux для пользователей Windows в 2021 году

Как настроить локальный веб-сервер (Windows, Mac, Linux)

Wi-Fi не работает в Linux? Вот как это исправить

10 лучших док-станций для запуска Linux

7 лучших инструментов для системы очистки Linux

Как исправить ошибку подключения «Нет маршрута к хосту» в Linux

Лучшие среды рабочего стола 2021 года

10 лучших отладчиков Linux для инженеров-программистов

15 команд Linux LS, которые вам нужно знать

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *