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

Содержание
Почему Vim не даёт печатать: четыре режима
Vim открывается в нормальном режиме. Клавиши здесь не вставляют текст, а выполняют команды: d удаляет, y копирует, u отменяет. Поэтому новичок жмёт буквы, на экране творится странное, и кажется, что редактор сломался.
- Normal - перемещение и команды. Сюда всегда возвращает
Esc. - Insert - обычный ввод текста. Входим клавишей
i, внизу появляется-- INSERT --(или-- ВСТАВКА --в русской локали). - Visual - выделение:
vпосимвольно,Vстроками,Ctrl+vпрямоугольным блоком. - Command-line - строка внизу экрана после двоеточия
:, сюда вводят сохранение, выход, замену.
Главное правило: не понимаете, что происходит, нажмите Esc пару раз. Вы окажетесь в нормальном режиме, откуда работает всё остальное.
Как выйти из Vim и сохранить файл
Выход всегда идёт из нормального режима: сначала Esc, потом команда, потом Enter.
| Команда | Что делает |
|---|---|
:q | выйти, если изменений нет |
:q! | выйти, выбросив все изменения |
:w | сохранить и остаться в файле |
:wq | сохранить и выйти |
:x или ZZ | сохранить и выйти, но записать файл только если он менялся |
ZQ | выйти без сохранения, аналог :q! |
:w новое_имя.txt | сохранить копию под другим именем |
:wa, :qa! | сохранить все открытые файлы, закрыть все без сохранения |
ZZ и ZQ набираются без двоеточия, заглавными буквами, то есть с Shift.
Ошибки при выходе
- E37: No write since last change - файл изменён, а вы пытаетесь выйти через
:q. Решите::wqили:q!. - E45: 'readonly' option is set - файл открыт только для чтения. Если права на запись есть, сохраните принудительно:
:w!. - E212: Can't open file for writing - нет прав на файл, обычно системный конфиг открыли без sudo.
Последняя ситуация самая обидная: правки уже сделаны. Спасает запись через sudo прямо из Vim:
:w !sudo tee % > /dev/null
Знак % подставляет имя текущего файла. После записи Vim предупредит, что файл изменился на диске, нажмите L или O, чтобы перечитать, и выходите через :q!. На будущее системные файлы правьте через sudoedit /etc/файл: так редактор работает от вашего пользователя, а сохраняет с правами root. Как устроены sudo и права администратора, разобрано в статье про пользователей и sudo.
Вставка, удаление, копирование и отмена
Способов войти в режим вставки несколько, и каждый экономит пару нажатий:
i- перед курсором,a- после курсора;I- в начало строки,A- в конец строки;o- новая строка ниже,O- новая строка выше.
Остальное делается в нормальном режиме:
x # удалить символ под курсором
dd # удалить (вырезать) строку
5dd # удалить пять строк
dw # удалить до конца слова
D # удалить до конца строки
yy # скопировать строку
p # вставить после курсора, P - перед
u # отменить
Ctrl+r # повторить отменённое
. # повторить последнее действие
ciw # заменить слово целиком
cc # переписать строку заново
В Vim команды складываются как слова: действие плюс объект. d (удалить) + w (слово) = dw. c (изменить) + i" (внутри кавычек) = ci", и текст между кавычками исчезает, а вы уже в режиме вставки. Стоит понять этот принцип, и запоминать отдельные сочетания почти не придётся.
Навигация по файлу без мыши и стрелок
Стрелки в Vim работают, но пальцы с основного ряда уходят. Базовые клавиши: h влево, j вниз, k вверх, l вправо. Перед любой из них можно поставить число: 10j опустит курсор на десять строк.
w b e # следующее слово, предыдущее, конец слова
0 ^ $ # начало строки, первый непробельный символ, конец строки
gg G # начало файла, конец файла
:120 # перейти на строку 120 (то же 120G)
Ctrl+d # полэкрана вниз, Ctrl+u - вверх
% # к парной скобке
fx # к следующему символу x в строке
Номер строки удобно видеть слева, включите его командой :set number. Когда в журнале ошибок указано "line 87", набираете :87 и сразу оказываетесь на месте. Если хочется прыгать между двумя местами файла, поставьте метку ma и возвращайтесь к ней через `a.
Поиск и замена в Vim
Поиск запускается из нормального режима косой чертой:
/listen # искать вперёд
?listen # искать назад
n N # следующее и предыдущее совпадение
* # искать слово под курсором
:noh # убрать подсветку найденного
Регистр по умолчанию учитывается. Добавьте \c в шаблон, /listen\c, чтобы искать без учёта регистра, или включите это навсегда в .vimrc.
Замена через :s
:s/old/new/ # первое вхождение в текущей строке
:s/old/new/g # все вхождения в строке
:%s/old/new/g # во всём файле
:%s/old/new/gc # во всём файле с подтверждением каждой замены
:10,40s/^/#/ # закомментировать строки с 10 по 40
:%s/\s\+$//e # удалить пробелы в конце строк
Флаг c полезен при правке конфигов: Vim подсветит каждое совпадение и спросит y/n/a/q. Если в шаблоне есть косые черты, например пути, смените разделитель: :%s#/var/www#/srv/www#g. Неудачную массовую замену отменяет одна клавиша u.
Визуальный режим и системный буфер обмена
Выделите текст через v или V, двигайте курсор, затем жмите y (копировать), d (вырезать) или > (сдвинуть вправо). Блочное выделение Ctrl+v позволяет вписать один и тот же текст в начало нескольких строк: выделите столбец, нажмите I, введите текст и Esc.
С системным буфером обмена путаница частая. Внутренний буфер Vim и буфер рабочего стола разные. Копировать наружу можно через регистр "+: "+y копирует, "+p вставляет. Но только если Vim собран с поддержкой буфера:
vim --version | grep clipboard
Если видите -clipboard, поддержки нет. В Debian и Ubuntu поставьте vim-gtk3, в Fedora vim-X11 и запускайте vimx, в Arch пакет gvim. Под Wayland дополнительно пригодится wl-clipboard. Обходной путь без пересборки: выделить текст мышью в терминале и скопировать через Ctrl+Shift+c, про сочетания эмулятора терминала есть отдельная статья о горячих клавишах терминала.
Базовый .vimrc: минимум, с которым приятно работать
Личные настройки читаются из ~/.vimrc или ~/.vim/vimrc. Есть тонкость из справки :help defaults.vim: пока у вас нет своего vimrc, Vim подгружает разумные умолчания из defaults.vim. Как только файл появился, умолчания отключаются, поэтому подключите их явно первой строкой.
unlet! skip_defaults_vim
source $VIMRUNTIME/defaults.vim
set number " номера строк
set relativenumber " относительные номера, удобно для 5j и 3dd
set ignorecase " поиск без учёта регистра
set smartcase " но с учётом, если в шаблоне есть заглавные
set hlsearch " подсветка найденного
set expandtab " пробелы вместо табуляции
set shiftwidth=4
set tabstop=4
set undofile " отмена переживает перезапуск Vim
set undodir=~/.vim/undo
syntax on
filetype plugin indent on
Комментарии в vimrc начинаются с двойной кавычки. Для undofile создайте каталог: mkdir -p ~/.vim/undo. Применить изменения без перезапуска можно командой :source ~/.vimrc.
Не тащите в первый же день чужой vimrc на 500 строк с десятком плагинов. Добавляйте по одной настройке, когда реально упёрлись в неудобство. Через месяц у вас будет короткий конфиг, где вы понимаете каждую строку, а это ценнее любой сборки с GitHub.
Установка полного Vim и редактор по умолчанию
Во многих системах команда vi запускает урезанную сборку. В Ubuntu это vim-tiny без подсветки синтаксиса, в Fedora vim-minimal. Полная версия ставится так:
# Debian, Ubuntu
sudo apt install vim
# Fedora
sudo dnf install vim-enhanced
# Arch
sudo pacman -S vim
Чтобы Vim открывался в crontab -e (про расписания есть статья о cron), visudo, git commit и других программах, задайте редактор:
# Debian и Ubuntu: системный выбор
sudo update-alternatives --config editor
# для своего пользователя в ~/.bashrc
export EDITOR=vim
export VISUAL=vim
# только для Git
git config --global core.editor vim
Если вы попали в Vim случайно, например из git commit без сообщения, и учиться прямо сейчас не хотите, выйдите через :q! и назначьте редактором nano. Он описан в статье про nano, а настройку Git для начинающих мы разбирали в материале про основы Git.
Как учиться дальше
Вместе с Vim ставится интерактивный учебник: команда vimtutor в терминале, полчаса практики, и базовые движения уходят в пальцы. Встроенная справка открывается через :help, например :help :s, а полная документация есть на официальном сайте Vim. Если со временем захочется Lua-конфигов и встроенного LSP, присмотритесь к Neovim: базовые команды из этой статьи там те же.
Частые вопросы
Как выйти из Vim без сохранения?
Нажмите Esc, наберите :q! и Enter. Тот же результат даёт ZQ, набранное заглавными буквами без двоеточия.
Чем :wq отличается от :x?
:wq записывает файл всегда, даже без изменений, и меняет время модификации. :x и ZZ записывают только при наличии изменений, а потом выходят.
Как сохранить файл, если забыл sudo?
Выполните :w !sudo tee % > /dev/null, введите пароль, затем перечитайте файл и выйдите через :q!. В следующий раз открывайте системные файлы через sudoedit.
Почему в Vim не работает копирование в буфер обмена?
Скорее всего, сборка без поддержки clipboard. Проверьте vim --version | grep clipboard и поставьте vim-gtk3 в Ubuntu, vim-X11 в Fedora или gvim в Arch.
Что делать с предупреждением о swap-файле?
Оно значит, что файл уже открыт или прошлый сеанс упал. Если другого Vim нет, нажмите R для восстановления, сохраните файл и удалите старый .swp, либо E, чтобы открыть как есть.
Документация и источники
- Vim documentation, vim.org, 2026
- Vim help: starting.txt, defaults.vim, Vim, 2026
- Vim help: change.txt, :substitute, Vim, 2026
Читайте также
- Редактор nano в Linux: базовые команды и сочетания клавиш
- Горячие клавиши терминала Linux и приёмы работы в bash
- Git для начинающих: как пользоваться Git в Linux от первого коммита до GitHub
- Основные команды Linux для начинающих с примерами
- Bash-скрипты для начинающих: от первого файла до рабочего бэкапа
Команды проверены на актуальных версиях дистрибутивов на момент обновления. Перед изменением системных настроек сделайте резервную копию.