Шпаргалка по Neovim

0.10

Основные шорткаты и команды Neovim, которые вы реально будете использовать

Русский: 2026-03-29

Neovim — это современный, расширяемый текстовый редактор, построенный на основе Vim. Если вы когда-нибудь наблюдали, как кто-то летает по коду, не касаясь мыши, и думали «хочу так же» — вы по адресу. Neovim сохраняет всё, что сделало Vim легендарным — модальное редактирование, компонуемые команды, язык для манипулирования текстом — и добавляет первоклассный Lua-скриптинг, встроенную поддержку LSP и экосистему плагинов, превращающую его в полноценную IDE.

Кривая обучения реальна. От этого никуда не деться. Первая неделя будет ощущаться медленнее, чем в любом редакторе, откуда вы пришли, и вы наверняка хотя бы раз вернётесь в VS Code. Это нормально. Ключевое озарение в том, что Neovim — это не заучивание сотен шорткатов, а изучение небольшой грамматики движений и операторов, которые комбинируются. Как только d (delete) + w (word) щёлкнет как «удалить слово», вы поймёте, что c (change) + w тоже работает, и y (yank) + w, и внезапно вы уже не заучиваете шорткаты. Вы говорите на языке.

Эта шпаргалка покрывает то, к чему вы реально будете обращаться ежедневно. Она не исчерпывающая — официальная документация для этого — но она поможет стать продуктивным и выработать мышечную память, ради которой Neovim того стоит. Мы включили распространённые привязки LSP и Telescope, потому что большинство современных конфигов Neovim их используют, но ваши конкретные keymaps могут отличаться в зависимости от конфига. Если сомневаетесь, :map покажет, что к чему привязано.

Режимы

Сила Neovim — в его модальном дизайне. Вы всегда находитесь в одном из этих режимов, и умение переключаться между ними — основа всего остального.

Переключение режимов
Esc
Вернуться в Normal mode из любого режима
i
Вставка перед курсором
a
Вставка после курсора (append)
I
Вставка в начало строки
A
Вставка в конец строки
o
Открыть новую строку ниже и войти в Insert mode
O
Открыть новую строку выше и войти в Insert mode
v
Войти в Visual mode (посимвольное выделение)
V
Войти в Visual Line mode (выделение целых строк)
Ctrl-v
Войти в Visual Block mode (колоночное выделение)
:
Войти в Command-line mode
R
Войти в Replace mode (перезапись символов)

Если вы продолжаете нажимать Esc, а ничего не происходит, возможно, вы в terminal buffer. Попробуйте Ctrl-\, затем Ctrl-n, чтобы вернуться в Normal mode.

Навигация и движения

Движения — это половина компонуемой грамматики Neovim. Выучите их, и вы сможете комбинировать с любым оператором.

Базовое перемещение
hjkl
Влево / вниз / вверх / вправо
w
Перейти к началу следующего слова
b
Перейти к началу предыдущего слова
e
Перейти к концу текущего/следующего слова
WBE
То же, что w/b/e, но через пунктуацию (по WORD)
Перемещение по строке
0
Перейти к началу строки
^
Перейти к первому непробельному символу
$
Перейти к концу строки
f{char}
Перейти вперёд к {char} на текущей строке
F{char}
Перейти назад к {char} на текущей строке
t{char}
Перейти к позиции перед {char} вперёд
T{char}
Перейти к позиции после {char} назад
;
Повторить последний f/F/t/T вперёд
,
Повторить последний f/F/t/T назад
Перемещение по файлу и экрану
gg
Перейти к первой строке файла
G
Перейти к последней строке файла
{number}G
Перейти к строке {number}
%
Перейти к парной скобке
Ctrl-d
Прокрутить вниз на полстраницы
Ctrl-u
Прокрутить вверх на полстраницы
Ctrl-f
Прокрутить вниз на целую страницу
Ctrl-b
Прокрутить вверх на целую страницу
zz
Отцентрировать текущую строку на экране
zt
Переместить текущую строку к верху экрана
zb
Переместить текущую строку к низу экрана
{
Перейти к предыдущей пустой строке (абзац вверх)
}
Перейти к следующей пустой строке (абзац вниз)

f и t — скрытые жемчужины. Вместо того чтобы жать w пять раз, попробуйте f(, чтобы перепрыгнуть прямо к следующей скобке. Когда это щёлкнет, вы удивитесь, как жили без этого.

Операторы редактирования

Операторы комбинируются с движениями для формирования команд. Это настоящая суперсила: выучите несколько операторов и несколько движений — и вы сможете делать десятки вещей.

Базовые операторы
d{motion}
Удалить (вырезать) текст, охваченный движением
c{motion}
Изменить — удалить текст и войти в Insert mode
y{motion}
Скопировать (yank) текст, охваченный движением
>{motion}
Увеличить отступ вправо
<{motion}
Уменьшить отступ влево
={motion}
Авто-отступ / переформатировать
gu{motion}
Перевести текст в нижний регистр
gU{motion}
Перевести текст в верхний регистр
Частые комбинации
dd
Удалить всю строку
cc
Изменить всю строку
yy
Скопировать всю строку
D
Удалить от курсора до конца строки
C
Изменить от курсора до конца строки
x
Удалить символ под курсором
s
Удалить символ и войти в Insert mode
r{char}
Заменить символ под курсором на {char}
J
Объединить текущую строку со следующей
~
Переключить регистр символа под курсором
Текстовые объекты (используются с операторами)
iw
Внутри слова (только слово, без пробелов)
aw
Слово целиком (слово плюс окружающие пробелы)
i"
Внутри двойных кавычек
i'
Внутри одинарных кавычек
i)
Внутри круглых скобок
i}
Внутри фигурных скобок
i]
Внутри квадратных скобок
it
Внутри HTML/XML-тега
ip
Внутри абзаца

ci" (change inside quotes) — наверное, комбинация, которую вы будете использовать чаще всего. Курсор где угодно внутри строки в кавычках? ci" очищает содержимое и переводит в Insert mode. Работает со скобками (ci(), фигурными скобками (ci{), квадратными скобками (ci[) и тегами (cit).

Отмена, повтор и регистры

Отмена и повтор
u
Отменить последнее изменение
Ctrl-r
Повторить (redo)
.
Повторить последнее изменение — невероятно мощно
Регистры и буфер обмена
p
Вставить после курсора
P
Вставить перед курсором
"{reg}y{motion}
Скопировать в регистр {reg}
"{reg}p
Вставить из регистра {reg}
"+y{motion}
Скопировать в системный буфер обмена
"+p
Вставить из системного буфера обмена
:reg
Показать содержимое всех регистров

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

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

Поиск
/{pattern}
Поиск вперёд
?{pattern}
Поиск назад
n
Перейти к следующему совпадению
N
Перейти к предыдущему совпадению
*
Искать вперёд слово под курсором
#
Искать назад слово под курсором
:noh
Убрать подсветку поиска
Подстановка (поиск и замена)
:s/old/new/
Заменить первое вхождение на текущей строке
:s/old/new/g
Заменить все вхождения на текущей строке
:%s/old/new/g
Заменить все вхождения в файле
:%s/old/new/gc
Заменить все в файле с подтверждением
:'<,'>s/old/new/g
Заменить в визуальном выделении

Окна и сплиты

Создание сплитов
Ctrl-wv
Разделить окно вертикально
Ctrl-ws
Разделить окно горизонтально
:vsp {file}
Вертикальный сплит с открытием файла
:sp {file}
Горизонтальный сплит с открытием файла
Навигация по сплитам
Ctrl-wh
Перейти к левому сплиту
Ctrl-wj
Перейти к нижнему сплиту
Ctrl-wk
Перейти к верхнему сплиту
Ctrl-wl
Перейти к правому сплиту
Ctrl-ww
Циклический переход между сплитами
Размер и управление сплитами
Ctrl-w=
Сделать все сплиты одинакового размера
Ctrl-w_
Максимизировать высоту текущего сплита
Ctrl-w|
Максимизировать ширину текущего сплита
Ctrl-wo
Закрыть все сплиты кроме текущего
Ctrl-wq
Закрыть текущий сплит
Ctrl-wT
Переместить текущий сплит в новую вкладку

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

Буферы — это то, как Neovim отслеживает открытые файлы. Каждый открытый файл — это buffer, даже если вы его не видите. Вкладки в Neovim — это скорее «макеты», чем вкладки браузера: каждая вкладка может содержать свою компоновку сплитов.

Буферы
:ls
Показать открытые буферы
:b {name}
Переключиться на buffer по частичному имени (работает автодополнение)
:b {number}
Переключиться на buffer по номеру
:bn
Следующий buffer
:bp
Предыдущий buffer
:bd
Закрыть текущий buffer
:e {file}
Открыть файл в новом buffer
Вкладки
:tabnew
Открыть новую вкладку
:tabnew {file}
Открыть файл в новой вкладке
gt
Перейти к следующей вкладке
gT
Перейти к предыдущей вкладке
{number}gt
Перейти к вкладке {number}
:tabclose
Закрыть текущую вкладку

Метки и переходы

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

Метки
m{a-z}
Установить локальную метку
m{A-Z}
Установить глобальную метку (работает между файлами)
'{a-z}
Перейти к строке метки
`{a-z}
Перейти к точной позиции метки
:marks
Показать все метки
Список переходов
Ctrl-o
Перейти к предыдущей позиции в списке переходов
Ctrl-i
Перейти к следующей позиции в списке переходов
gd
Перейти к локальному определению слова под курсором
gD
Перейти к глобальному определению слова под курсором
gf
Перейти к файлу под курсором
:jumps
Показать список переходов

Ctrl-o — ваша кнопка «назад». Каждый раз, когда вы куда-то прыгаете — поиск, переход к определению, переключение файлов — Neovim запоминает, где вы были. Нажмите Ctrl-o, чтобы пройти по своим следам. Работает между файлами. Одно это спасёт вас от потери ориентации.

Макросы

Макросы записывают последовательность нажатий и воспроизводят их. Идеальны для повторяющихся правок, которые слишком сложны для ., но не стоят написания скрипта.

Запись и воспроизведение макросов
q{a-z}
Начать запись макроса в регистр {a-z}
q
Остановить запись (нажмите во время записи)
@{a-z}
Воспроизвести макрос из регистра
@@
Повторить последний воспроизведённый макрос
{n}@{a-z}
Воспроизвести макрос {n} раз

При записи макроса начинайте с 0 или ^, чтобы перейти в фиксированную позицию на строке, и завершайте с j, чтобы перейти вниз. Тогда вы сможете запустить его на нескольких строках командой вроде 10@q, и он будет работать надёжно.

LSP (Language Server Protocol)

Neovim имеет встроенную поддержку LSP начиная с версии 0.5. Это распространённые стандартные привязки, но ваш конфиг может их перенастроить. Проверьте через :map или посмотрите ваш lspconfig.

Навигация LSP
gd
Перейти к определению
gD
Перейти к объявлению
gr
Показать ссылки
gi
Перейти к реализации
K
Всплывающая документация
Ctrl-k
Подсказка сигнатуры (в Insert mode)
Действия LSP
<leader>rn
Переименовать символ под курсором
<leader>ca
Code action (быстрые исправления, рефакторинги)
<leader>f
Отформатировать buffer
]d
Перейти к следующей диагностике
[d
Перейти к предыдущей диагностике
<leader>e
Показать диагностику во всплывающем окне
<leader>q
Отправить диагностику в location list

Telescope

Telescope — это fuzzy finder, на который опирается большинство современных конфигов Neovim. Это типичные привязки через <leader> — ваши могут отличаться в зависимости от конфига. Если вы ещё не используете Telescope, это единственный плагин, который больше всего стоит установить.

Поиск
<leader>ff
Найти файлы по имени
<leader>fg
Live grep (поиск по содержимому файлов)
<leader>fb
Просмотр открытых буферов
<leader>fh
Поиск по тегам помощи
<leader>fo
Недавно открытые файлы
<leader>fw
Поиск слова под курсором
Внутри Telescope
Ctrl-nCtrl-p
Перемещение вверх/вниз по результатам (или стрелками)
Enter
Открыть выбранный результат
Ctrl-x
Открыть в горизонтальном сплите
Ctrl-v
Открыть в вертикальном сплите
Ctrl-t
Открыть в новой вкладке
Esc
Закрыть Telescope

Основные команды

Файловые операции
:w
Сохранить файл
:q
Выйти (ошибка, если есть несохранённые изменения)
:wq
Сохранить и выйти
:q!
Выйти без сохранения
:wa
Сохранить все открытые буферы
:qa
Выйти из всех
ZZ
Сохранить и выйти (шорткат Normal mode)
ZQ
Выйти без сохранения (шорткат Normal mode)
Полезные команды
:set number
Показать номера строк
:set relativenumber
Показать относительные номера строк
:!{cmd}
Выполнить shell-команду
:r !{cmd}
Вставить вывод shell-команды в buffer
:map
Показать все привязки клавиш
:checkhealth
Диагностика вашей установки Neovim

Советы и трюки

Относительные номера строк (set relativenumber) — это находка для вертикальных перемещений. Вместо того чтобы гадать «это 15 строк вниз?», вы видите число прямо там и набираете 15j. Большинство людей ставят и number, и relativenumber, чтобы текущая строка показывала абсолютный номер, а остальные — относительные.

Visual Block mode (Ctrl-v) позволяет редактировать столбцы. Выделите вертикальный столбец, нажмите I, введите текст и нажмите Esc — текст появится на каждой выделенной строке. Невероятно удобно для добавления префиксов, выравнивания кода или редактирования структурированного текста.

Не нужно заучивать каждый шорткат на этой странице. Начните с hjkl, w/b, dd, yy, p, i, Esc и :wq. Используйте их неделю. Потом добавьте ciw, f{char} и Ctrl-d/Ctrl-u. Наращивайте постепенно — именно так все, кто хорош в Vim, на самом деле его изучали.

Запустите :checkhealth после настройки конфига. Он покажет, что работает, что сломано и чего не хватает. Это первая команда, которую стоит запустить, когда что-то ощущается не так.

Команда gx в Normal mode открывает URL под курсором в браузере. Удобно, когда вы читаете код со ссылками в комментариях.

Настройка Neovim

Хотите понять и настроить свой init.lua? Попробуйте интерактивный редактор конфига — загрузите свой конфиг, посмотрите, что делает каждая опция, и настройте визуально.

Related Tools