К сведенью
У меня есть друг, он уже 20 лет работает в Vim, он просто не знает как из него выйти.
Эта шпаргалка охватывает базовые команды, которые изучаются в ходе прохождения vimtutor
и не только.
📚 Как начать обучение
Настоятельно рекомендую пройти vimtutor
, в терминале введите:
vimtutor
Он проведёт вас по всем этим командам шаг за шагом.
Важно
Если вы просто скопируете эту шпаргалку на свой 🖥️комлюктер, то она вам не поможет. Необходимо пройти
vimtutor
📌 Основные режимы
- Обычный режим (Normal mode) — основной режим, с которого начинается работа.
- Режим вставки (Insert mode) — для ввода текста.
- Командный режим (Command mode) — для выполнения команд (например, сохранение, выход).
Info
Esc или CTRL+C - выйти в Normal mode
🔁 Переход между режимами
Команда | Действие |
---|---|
i | Вставить текст перед курсором (вход в режим вставки) |
a | Вставить текст после курсора (вход в режим вставки) |
o | Новая строка под текущей, ввод (режим вставки) |
O | Новая строка над текущей, ввод (режим вставки) |
<Esc> | Возврат в обычный режим из любого другого |
🚶 Перемещение курсора (в обычном режиме)
Клавиша | Действие |
---|---|
h | ← влево |
j | ↓ вниз |
k | ↑ вверх |
l | → вправо |
w | Вперёд на слово (к началу следующего слова) |
b | Назад на слово (к началу предыдущего слова) |
0 | В начало строки |
^ | В начало текста строки |
$ | В конец строки |
G | В конец файла (на последнюю строку) |
1G | На первую строку файла |
5G | На 5-ю строку (цифра может быть любой) |
() | к началу/концу предложения |
{} | к началу/концу параграфа |
✏️ Редактирование текста
Команда | Действие |
---|---|
x | Удалить символ под курсором |
dd | Удалить всю строку |
dw | Удалить от курсора до конца слова |
d$ | Удалить от курсора до конца строки |
d0 | Удалить от курсора до начала строки |
u | Отменить последнее изменение |
U | Отменить все изменения в текущей строке |
Ctrl-r | Повторить отменённое действие (redo) |
ce | Изменить окончание слова |
cc | Изменить всю строку |
🔤 Вставка и добавление текста
Команда | Действие |
---|---|
i | Вставить перед курсором |
a | Добавить после курсора |
A | Добавить в конец строки |
o | Новая строка ниже, ввод |
O | Новая строка выше, ввод |
p | Вставка, только что удаленного текста |
R | Режим замены |
📘 ОПЕРАТОРЫ И ОБЪЕКТЫ
В Vim большинство действий строятся по принципу:
Оператор + Объект = Действие
- Оператор — что вы хотите сделать (например, удалить, скопировать, изменить).
- Объект — на чём вы это делаете (например, слово, строка, до конца строки).
✅ Примеры:
Команда | Что делает |
---|---|
dw | Удалить слово (delete + word) |
d$ | Удалить от курсора до конца строки (delete + до $) |
dd | Удалить всю строку (специальный случай: d дважды — строка) |
cw | Изменить слово (change + word) |
c$ | Изменить от курсора до конца строки |
yy | Скопировать строку (yank + строка) |
yw | Скопировать слово (yank + word) |
yl | Скопировать символ |
dl | Вырезать символ |
🔁 Важно:
- Вы можете использовать оператор в обычном режиме, затем указать объект.
- Например:
d
→ нажимаетеw
→ удаляется слово.c
→ нажимаетеw
→ слово удаляется, и вы переходите в режим вставки.
Info
Если вы нажали оператор, но передумали — нажмите
<Esc>
, чтобы отменить.
🔂ПРИМЕНЕНИЕ СЧЁТЧИКА СОВМЕСТНО С ОБЪЕКТАМИ
💡 Основная идея:
Вы можете указать число (счётчик) перед командой, чтобы повторить действие несколько раз.
Синтаксис:
[число][оператор][объект]
✅ Примеры:
Команда | Что делает |
---|---|
2w | Перейти вперёд на 2 слова |
3e | Перейти к концу 3-го слова |
4j | Перейти на 4 строки вниз |
5l | Перейти на 5 символов вправо |
2dw | Удалить 2 слова |
3dd | Удалить 3 строки, начиная с текущей |
2x | Удалить 2 символа под курсором |
3yy | Скопировать 3 строки |
2dd | Удалить 2 строки |
4x | Удалить 4 символа справа от курсора |
3dw | Удалить 3 слова |
5dd | Удалить 5 строк сразу |
🔍 Как это работает:
- Счётчик умножает действие.
- Например,
3w
— это как трижды нажатьw
.
💡 Полезно: вместо
www
— просто3w
.
🛠 Советы:
- Используйте
u
для отмены (undo), если удалите слишком много. .
— повторит последнюю команду изменения, например, если вы удалили слово —.
удалит следующее.
💡 Например:
dw
— удалили слово..
— удалили следующее слово.- Ещё раз
.
— и так далее.
🧩 Обобщение: Структура команд Vim
[счётчик] [оператор] [счётчик] [объект]
Примеры:
3d2w
— удалить 3 раза по 2 слова (всего 6 слов).- На практике чаще используют:
d3w
— удалить 3 слова.
📌 Подсказки из vimtutor
- Не бойтесь ошибаться — используйте
u
для отмены. - Повторяйте команды с разными счётчиками, чтобы почувствовать ритм.
.
— ваш лучший друг при повторяющихся действиях.
ℹ️ ИНФОРМАЦИЯ О ФАЙЛЕ И ПОЗИЦИЯ КАРЕТКИ
🔎 1. Показать позицию каретки: Ctrl-g
Нажмите Ctrl-g
и появляется строка внизу экрана с информацией о текущем положении курсора.
Пример вывода:
"myfile.txt" line 10 of 25 --40%-- col 15
Расшифровка:
Элемент | Значение |
---|---|
"myfile.txt" | Имя открытого файла |
line 10 of 25 | Вы находитесь на строке 10 из 25 (всего в файле 25 строк) |
--40%-- | Примерно 40% файла пройдено (по строкам) |
col 15 | Курсор находится в 15-м столбце (символе) текущей строки |
Info
Это очень полезно, когда вы работаете с большим файлом и хотите понять, где вы: в начале, середине или конце.
🧭 2. Как использовать Ctrl-g
на практике
- Нажмите
Ctrl-g
, чтобы увидеть, где вы. - Переместитесь (например, с помощью
G
— в конец файла, илиgg
— в начало). - Введите номер строки, на которой были ранее (значение отобразится внизу экрана), затем прожмите
G
— перейдете на за заданную строку.
🛠 4. Зачем это нужно?
- Понимать, насколько вы продвинулись по файлу.
- Быстро переходить к нужной строке, например:
15G
— перейти к строке 15.:15
— то же самое.
- Удобно при редактировании больших файлов, логов, программного кода.
🔍 Поиск и замена
Команда | Действие |
---|---|
/слово | Поиск слова вперёд (например, /test ) |
/слово\с | Поиск слова вперёд не учитывать регистр |
?слово | Поиск слова назад |
n | Следующее совпадение |
N | Предыдущее совпадение |
:s/старое/новое | Заменить первое вхождение в строке |
:s/старое/новое/g | Заменить все вхождения в строке |
:%s/старое/новое/g | Заменить все вхождения в файле |
:%s/старое/новое/gc | С подтверждением для каждого |
Поиск парных скобок
Поместите каретку на любую из скобок
( [ {
Теперь нажмите на клавиатуре клавишу с символом%
, Каретка будет перемещена на парную скобку для той скобки, на которой установлена каретка
💾 Сохранение и выход
Команда | Действие |
---|---|
:w | Сохранить файл |
:q | Выйти из Vim |
:q! | Выйти без сохранения (если были изменения) |
:wq или :x | Сохранить и выйти |
ZZ | Быстрый выход с сохранением (аналог :x ) |
ZQ | Быстрый выход без сохранения (аналог :q! ) |
:e | отменить изменения |
🧩 Полезные команды
Команда | Действие |
---|---|
. | Повторить последнее изменение |
r | Заменить один символ (например, rx — заменить символ на x ) |
R | Переход в режим замены (overwrite) |
~ | Изменить регистр символа под курсором |
v | Выделить символы (по одному), затем можно d или y |
yy | Скопировать (yank) строку |
p | Вставить после курсора |
P | Вставить перед курсором |
🧰 Как вызвать из редактора внешнюю команду
Вы можете выполнить команду оболочки (shell), не выходя из Vim. :!команда
✅ Примеры:
Команда в Vim | Что делает |
---|---|
:!ls | Показать список файлов (в Linux/macOS) |
:!dir | Показать список файлов (в Windows) |
:!date | Показать текущую дату и время |
:!pwd | Показать текущую директорию |
💡 Как использовать:
- Нажмите
:
— перейдёте в командный режим. - Введите
!
и команду, например:!ls
- Нажмите
Enter
- Результат выполнится, и вы вернётесь в Vim.
После выполнения команды нажмите
Enter
, чтобы вернуться к редактированию.
🎯 Зачем это нужно:
- Проверить, есть ли файл, который вы хотите открыть.
- Убедиться в пути к файлу.
- Выполнить быструю задачу без выхода из Vim.
💾 Как записать файл (сохранить)
Сохранение изменений в текущий файл :w
💡 Примечания:
- Если файл ещё не был сохранён, Vim попросит указать имя.
- Если вы редактируете уже существующий файл —
:w
просто сохранит изменения.
Важно
:w
не выходит из Vim — вы продолжаете редактировать.
✂️ Выборочная запись строк (сохранение части файла)
Вы можете сохранить не весь файл, а только выбранные строки :нач_строка,кон_строка w имя_файла
✅ Примеры:
Команда | Что делает |
---|---|
:1,5w myfile.txt | Сохранить строки с 1 по 5 в файл myfile.txt |
:10,20w temp.txt | Сохранить строки 10–20 в файл temp.txt |
:.,$w tail.txt | Сохранить от текущей строки до конца в tail.txt |
:'<,'>w part.txt | Сохранить выделенные строки (в режиме визуального выделения) |
Лайвхак
- Нажмите клавишу v (перейдите в режим выделения) и переместите каретку, обратите внимание, что выбранный текст подсвечен.
- Нажмите клавишу с символом
:
и внизу экрана появится:'<,'>
- Наберите команду w TEST (здесь TEST - файл, который ещё не существует). в командной строке должно быть
:'<,'>w TEST
и нажмите клавишуENTER
.- По этой команде выбранные строки будут записаны в файл TEST.
🎯 Как использовать:
- Узнайте номера строк (можно использовать
Ctrl-g
). - Введите команду вида
:1,3w test.txt
- Vim создаст (или перезапишет) файл
test.txt
с этими строками.
💡 Полезно для извлечения фрагментов текста, например, примеров кода.
4. 📥 Считывание и объединение файлов
Вы можете вставить содержимое другого файла прямо в текущий :r имя_файла
✅ Примеры:
Команда | Что делает |
---|---|
:r notes.txt | Вставить содержимое notes.txt под текущей строкой |
:r !date | Вставить результат команды date в файл |
:r !ls | Вставить список файлов в текущий документ |
:r !whoami | Вставит имя текущего пользователя |
💡 Полезные советы из vimtutor
- Используйте
:!ls
перед:r
, чтобы убедиться, что файл существует. :w
и:r
— ключевые команды для работы с файлами.- Комбинация
:r !
позволяет вставлять динамические данные (дата, время, вывод программ). - Не бойтесь экспериментировать — используйте
u
для отмены.
ВСТРОЕННАЯ СПРАВОЧНАЯ СИСТЕМА
- наберите
:help
- Нажмите
CTRL-w
для перемещения каретки из одного окна в другое окно:q
для выхода из справочной системы
🚀 Бонус: полезные фишки Vim (вне vimtutor)
Команда | Что делает | Зачем это полезно |
---|---|---|
:set number или :set nu | Показывает номера строк | Удобная навигация и ориентация в файле |
:set relativenumber или :set rnu | Показывает относительные номера строк (от курсора) | Удобно с командами вроде 5j , 10G , d2k — видно, сколько строк двигаться |
zz | Центрирует текущую строку по центру экрана | Удобно при чтении |
zt | Перемещает текущую строку в начало экрана | Полезно при длинных файлах |
zb | Перемещает текущую строку в конец экрана | — |
Ctrl-d | Пролистать вниз на полстраницы | Быстрее, чем j |
Ctrl-u | Пролистать вверх на полстраницы | Быстрее, чем k |
Ctrl-f | Пролистать вниз на страницу (Page Down) | — |
Ctrl-b | Пролистать вверх на страницу (Page Up) | — |
* | Найти следующее вхождение слова под курсором | Очень быстро! Навели курсор — нажали * — ищет |
# | То же, но в обратном направлении | Поиск назад по слову |
gd | Перейти к определению переменной/слова (в коде) | Полезно в программировании |
gD | То же, но ищет в текущей функции | — |
:%s/старое/новое/gc | Заменить с подтверждением (c = confirm) | Безопасная замена — Vim спросит: “заменить?” |
:nohlsearch или :noh | Убрать подсветку поиска | После поиска всё подсвечено — :noh мгновенно уберёт |
Ctrl-^ | Переключиться на предыдущий файл (:e# ) | Удобно при работе с двумя файлами |
gf | Перейти к файлу, имя которого под курсором | Если курсор на main.py — откроет его (если есть) |
[ и ] | Навигация по изменениям:[ — назад, ] — вперёд | Как u , но для перехода между изменениями без отмены |
Ctrl-o | Перейти к предыдущей позиции (jump back) | История перемещений |
Ctrl-i | Перейти к следующей позиции (jump forward) | Обратно к Ctrl-o |
:bd | Закрыть текущий буфер (файл) | Вместо :q , если открыто несколько файлов |
:e . | Открыть файловый менеджер (браузер файлов) | Удобный просмотр папки (работает, если установлен) |
g; | Перейти к предыдущему месту редактирования | История позиций курсора при правке |
g, | Перейти к следующему такому месту | — |
💡 Полезные сочетания
:w !sudo tee %
— сохранить файл, если забыли открыть черезsudo
(Linux/macOS):!make
— запустить сборку, не выходя из Vimzo
/zc
— раскрыть / свернуть блок (в файлах с отступами, например, Python, Markdown):vsp file.txt
— открыть файл в вертикальном сплите:sp file.txt
— в горизонтальном сплите
🧠 Совет
Добавьте в ~/.vimrc
:
set number
set relativenumber
set incsearch
set hlsearch
set ignorecase
set smartcase
— и Vim станет гораздо удобнее.
✅ Эти фишки не входят в vimtutor
, но делают работу в Vim быстрее, точнее и приятнее.