Skip to content

Instantly share code, notes, and snippets.

@dmitry-osin
Created October 5, 2025 16:26
Show Gist options
  • Select an option

  • Save dmitry-osin/907adc9e6e184a41d7d70806761241bc to your computer and use it in GitHub Desktop.

Select an option

Save dmitry-osin/907adc9e6e184a41d7d70806761241bc to your computer and use it in GitHub Desktop.
Шпаргалка по горячим клавишам vim

Режимы и выход

Комбинация Действие
Esc Выйти в нормальный режим
i Вставка перед курсором
I Вставка в начале строки
a Вставка после курсора
A Вставка в конце строки
o Новая строка ниже, режим вставки
O Новая строка выше, режим вставки
v Визуальный (посимвольный)
V Визуальный построчный
Ctrl+v Визуальный блочный
R Режим замены (replace)
:q Выйти (если нет несохранённых)
:q! Выйти без сохранения
:w Сохранить
:wq / ZZ Сохранить и выйти
ZQ Выйти без сохранения

Перемещение курсора (базовое)

Комбинация Действие
h j k l Влево/вниз/вверх/вправо
0 / ^ В начало строки / к первому непробельному
$ В конец строки
gg / G В начало/конец файла
{ / } Абзац назад/вперёд
H / M / L Верх/середина/низ экрана
Ctrl+u / Ctrl+d Полэкрана вверх/вниз
Ctrl+b / Ctrl+f Экран вверх/вниз
zb / zz / zt Прокрутить строку вниз/центр/вверх экрана

Перемещение по словам и тексту

Комбинация Действие
w / b / e Начало след. слова / назад / конец слова
W / B / E По “большим” словам (по пробелам)
ge / gE К концу предыдущего слова (мал./больш.)
f{char} / F{char} К символу вправо/влево в строке
t{char} / T{char} До символа (не включая) вправо/влево
; / , Повторить последний f/t (вперёд/назад)
% Перейти к парной скобке () {} []
gd / gD К определению локальному/глобальному (идентификатор)
[{ / ]} К началу/концу блока по скобкам

Поиск и замена

Комбинация Действие
/текст Поиск вперёд
?текст Поиск назад
n / N Следующее/предыдущее совпадение
* / # Поиск слова под курсором вперёд/назад
:%s/old/new/g Замена во всём файле
:%s/old/new/gc Замена с подтверждением
:s/old/new/g Замена в текущей строке
:vimgrep /rg Глобальный поиск (зависит от плагинов/grepprg)
:copen / :cnext / :cprev Quickfix-список: открыть/след./пред.

Редактирование (операторы и действия)

Комбинация Действие
x / X Удалить символ под курсором / слева
r{char} Заменить символ
~ Инверсия регистра символа
u / Ctrl+r Отмена / Повтор отмены
. Повтор последнего изменения
J Склеить строку ниже
= /==/gg=G Авто-выравнивание: выделение/строка/весь файл
>> / << Сдвиг вправо/влево (indent)
gi Вернуться к последней позиции вставки
ga Код символа под курсором

Операторы (комбинируются с объектами и перемещениями):

Оператор Значение
d Удалить (cut)
c Изменить (delete + вставка)
y Скопировать (yank)
> / < Сдвиг вправо/влево
g~ / gu / gU Инверт./нижний/ВЕРХНИЙ регистр
= Форматирование

Примеры комбинаций:

Пример Действие
dw Удалить до конца слова
d$ / D Удалить до конца строки
d0 Удалить до начала строки
ciw / diw Изменить/удалить внутр. слово
ci" / di( Изменить внутри кавычек/скобок
yy / 2yy Скопировать строку / 2 строки
p / P Вставить после/до курсора
yip / dip / cip Операции над внутренним абзацем

Текстовые объекты

Объект Внутри (i...) Вокруг (a...)
Слово iw aw
Скобки () i) или ib a) или ab
Квадр. скобки [] i] a]
Фигурные {} i} a}
Кавычки ' " ` i' i" i` a' a" a`
Абзац ip ap
Тег HTML it at

Визуальный режим

Комбинация Действие
v / V / Ctrl+v Выделение: симв./строки/блок
o Поменять активную границу выделения
aw/iw и т.д. Выбирать текстовые объекты
> / < Сдвиг блока
= Форматировать выделение
y / d / c Копировать/удалить/изменить выделение
:'<,'>s/.../.../g Замена в выделении
gU / gu В ВЕРХНИЙ / в нижний регистр

Вставка и клипборды

Комбинация Действие
p / P Вставить после/до курсора
"xp Вставить из регистра x
"+y / "+p Копировать/вставить в системный буфер (Windows)
"*y / "*p Буфер выделения (X11; в Windows обычно как "+)
:set paste / :set nopaste Режим вставки без авт. отступов

Регистры:

Регистры Описание
"0 Последнее yank
"1–"9 История удалений
"" Неявный (по умолчанию)
"_ Чёрная дыра (удалить без буфера)
"+ Системный буфер обмена
"a–"z Именованные

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

Комбинация Действие
== Выравнять текущую строку
=% Выравнять по парной скобке
gg=G Выравнять весь файл
>> / << Сдвиг строки вправо/влево
:set expandtab Пробелы вместо табов
:set tabstop=4 Ширина таба при отображении
:set shiftwidth=4 Шаг автоотступа
:retab Перекодировать табы/пробелы

Буферы, окна и вкладки

Буферы:

Комбинация Действие
:ls / :buffers Список буферов
:bN / :bn / :bp Перейти к буферу N / след. / пред.
:bd Закрыть буфер
:b# Переключиться на пред. буфер

Окна (splits):

Комбинация Действие
:sp / :vsp Гориз./вертик. сплит
Ctrl+w s / v То же сплит из нормального режима
Ctrl+w w Перейти к следующему окну
Ctrl+w h/j/k/l Перейти влево/вниз/вверх/вправо
Ctrl+w c / q Закрыть текущее окно
Ctrl+w = Выравнять размеры
Ctrl+w + / - Увеличить/уменьшить высоту
Ctrl+w > / < Изменить ширину

Вкладки (tabs):

Комбинация Действие
:tabnew Новая вкладка
gt / gT След./пред. вкладка
:tabclose Закрыть вкладку
:tabs Список вкладок

Метки (marks) и закладки

Комбинация Действие
m{a-z} Поставить метку в файле
'{a-z} / `{a-z} Перейти к началу строки / точной позиции
'' / `` Вернуться к последней позиции
'. К последнему изменению
:marks Список меток

Макросы и повтор действий

Комбинация Действие
q{reg} ... q Записать макрос в регистр
@{reg} Выполнить макрос
@@ Повторить последний макрос
:reg Показать содержимое регистров
. Повторить последнее изменение
:normal {cmds} Выполнить команды нормального режима по строкам/диапазону

Файлы и навигация по проекту

Комбинация Действие
:e {file} Открыть файл
:w {file} Сохранить как
:Explore / :Ex Файловый менеджер (netrw)
gf Открыть файл по пути под курсором
Ctrl+^ Переключиться между двумя файлами
:cd / :lcd Сменить (локальную) директорию

Поиск в скобках, парные конструкции

Комбинация Действие
% Перейти к парной скобке
[{ / ]} К началу/концу блока
[m / ]m К началу/концу метода (в некоторых ftplugins)

Командная строка и история

Комбинация Действие
: Ввести Ex-команду
q: Открыть окно истории команд
/ и ? История поиска через стрелки вверх/вниз
Ctrl+r " Вставить из регистра в командную строку

Работа с числами

Комбинация Действие
Ctrl+a Увеличить число под курсором
Ctrl+x Уменьшить число под курсором
10Ctrl+a Увеличить на 10 и т.п.

Свертывание (folding)

Комбинация Действие
za Переключить свёртку под курсором
zc / zo Свернуть / развернуть
zM / zR Свернуть всё / развернуть всё
zm / zr Увеличить/уменьшить уровень
:set foldmethod=indent/syntax/marker Режим свёртки

Полезные сочетания для быстроты

Комбинация Действие
ciw Изменить слово (часто используемо)
daw Удалить слово с пробелом
dip / cip Удалить/изменить абзац
g~iw / guiw / gUiw Тоггл/нижний/верхний регистр слова
yiw; p Дублировать слово
viw Выделить слово
vit / cit Содержимое тега HTML

Настройки, которые часто нужны в Windows

Команда Действие
:set number relativenumber Номера строк и относительные
:set clipboard=unnamedplus Использовать системный буфер по умолчанию
:set mouse=a Включить мышь
:set encoding=utf-8 Кодировка UTF-8
:set nowrap Отключить перенос строк
:set ignorecase smartcase Регистронезависимый поиск с умным режимом
:set hlsearch incsearch Подсветка и инкрементальный поиск

Подсказки:

  • Любое действие можно умножать числом: 5j, 3dw, 10>>.
  • Операторы + объекты дают мощные комбинации: ci" меняет содержимое кавычек; da) удалит скобки и содержимое.
  • Используйте точку для повторения последнего изменения, это сильнейший ускоритель.
  • В Windows для системного буфера чаще всего используйте "+y и "+p; настройка clipboard=unnamedplus делает это по умолчанию.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment