Нажмите Escape. Введите :q! и нажмите Enter. Вы вышли.
Если правки нужно сохранить — :wq: записать и выйти. Если вы ничего не меняли, хватит :q. Это весь ответ, и вы заслужили получить его первой строкой, а не после девяти абзацев про философию текстового редактора.
Теперь интересное: почему вы не додумались сами? Вы разработчик и до обеда решаете задачи сложнее. Но этот редактор запер вас в комнате без видимой двери, а ключом оказался знак препинания.
Вы печатали внутрь файла
Скорее всего было так. Vim открылся. Вы набрали q, quit, exit, :x, ctrl-c, ctrl-z — и в итоге закрыли окно терминала.
Каждое из этих нажатий уходило в ваш документ. Не редактору — в текст. Vim вас не игнорировал, он послушно исполнял: буква за буквой вы вписывали слово «quit» в файл, который вообще не собирались править.
Причина в том, что Vim стартует в обычном режиме (normal mode), где клавиши — это команды, а не символы. У большинства редакторов режим ровно один: что нажали, то и появилось на экране. У Vim их несколько, и набор текста — лишь один из них. Как только это укладывается в голове, :q! перестаёт быть заклинанием и становится обычной фразой.
Что на самом деле говорит :q!
Разберём по частям:
:открывает командную строку внизу экрана. Значит: «сейчас будет инструкция, а не буква».q— quit, выйти.!— принудительно: делай, хотя есть несохранённые правки.
То есть :q! — это «выйти, и да, я уверен, выбрось мои изменения». Читается как предложение, потому что предложением и является. Команды Vim собираются из маленьких кусочков с фиксированным смыслом — и это самое полезное, что о нём вообще стоит знать.
:wq читается так же: записать, выйти. :w отдельно — сохранить, не выходя. Заучивать тут нечего, есть только грамматика.
Сначала Escape, всегда
Почему во всех рецептах первым идёт Escape: он возвращает в обычный режим откуда угодно. Печатали — Escape прекратит. Начали команду и передумали — Escape отменит.
Когда вы потерялись в Vim — а вы будете теряться примерно неделю — ответ почти всегда Escape. Это клавиша «я не понимаю, где я», и нажать её дважды ничего не стоит.
Это шутка — и одновременно суть
«Как выйти из Vim» — один из самых просматриваемых вопросов за всю историю Stack Overflow. Над этим шутят во всех сообществах разработчиков, про это печатают футболки.
Но присмотритесь, о чём шутка на самом деле. Никто не застревает потому, что Vim плохо сделан. Застревают потому, что Vim предполагает то, чего не предполагает ни один другой редактор: что вы будете больше менять текст, чем набирать новый. Примите это допущение — и модальность окажется не просто оправданной, а причиной, по которой люди, освоившие Vim, остаются в нём на двадцать лет.
Выход знаменит потому, что это первое место, где допущение кусается. И последнее — если потратить вечер на грамматику за ним.
Теперь сделайте это осознанно
Знать :q! — не значит знать Vim. Но это настоящая команда, и набрать её намеренно, а не в панике, — первый раз, когда редактор вам отвечает, а не сопротивляется.
Начните с первой каты — минута в браузере, и там вас точно ничто не запрёт в терминале.