Шпаргалка по командам и шорткатам#
Конфиг основан на kickstart.nvim с моими доработками. Leader = <Space> (пробел).
Везде ниже <leader> = пробел.
Базовые понятия#
Чтобы не путаться в терминологии Vim/Neovim:
- Buffer — открытый в памяти файл. Не обязательно виден на экране.
- Window (окно/сплит) — прямоугольник на экране, в котором показан буфер. Их можно открывать рядом (
vsplit) или одно над другим (split). - Tab (вкладка) — набор окон. Здесь почти не используется; для переключения файлов используются буферы (табы сверху от
bufferline— это буферы, не Vim-вкладки).
Режимы:
n— normal (по умолчанию, нажмите<Esc>)i— insert (для печати, заходишь черезi,a,o)v— visual (выделение, черезv/V/<C-v>)t— terminal (внутри терминала)
Окна (splits) — как сделать «несколько окон»#
Открыть новое окно рядом:
| Шорткат | Что делает |
|---|---|
<leader>wv |
Вертикальный сплит (новое окно справа) |
<leader>ws |
Горизонтальный сплит (новое окно снизу) |
<leader>wc |
Закрыть текущее окно |
<leader>wo |
Оставить только текущее окно (закрыть остальные) |
<leader>w= |
Уравнять размеры всех окон |
Навигация между открытыми окнами:
| Шорткат | Куда |
|---|---|
<C-h> |
окно слева |
<C-l> |
окно справа |
<C-j> |
окно снизу |
<C-k> |
окно сверху |
Ресайз текущего окна:
| Шорткат | Что делает |
|---|---|
<C-Up> / <C-Down> |
выше / ниже |
<C-Left> / <C-Right> |
уже / шире |
Пример рабочего раскладки. Открыл файл, хочешь редактор слева + терминал снизу + дерево слева:
<leader>e— открыть дерево слева<leader>ws— горизонтальный сплит (нижнее окно)- В нижнем окне
<C-\>— открыть терминал <C-k>— вернуться вверх
Буферы (открытые файлы — табы сверху)#
| Шорткат | Что делает |
|---|---|
<S-l> |
следующий буфер (Shift+L) |
<S-h> |
предыдущий буфер (Shift+H) |
<leader>x |
закрыть текущий буфер |
<leader><leader> |
список всех открытых буферов (Telescope) |
Раньше было
<Tab>/<S-Tab>, но<Tab>нужен для автокомплита (blink.cmp), поэтому переключение перенесено на<S-l>/<S-h>.
Файловое дерево (neo-tree)#
| Шорткат | Что делает |
|---|---|
<leader>e |
открыть / закрыть дерево слева |
<leader>E |
открыть дерево и подсветить текущий файл |
Внутри дерева (в фокусе neo-tree):
| Клавиша | Действие |
|---|---|
<CR> |
открыть файл/папку |
a |
создать файл/папку |
d |
удалить |
r |
переименовать |
y |
скопировать (yank) |
x |
вырезать |
p |
вставить |
H |
показать скрытые файлы |
? |
справка по всем кнопкам |
q |
закрыть дерево |
Поиск файлов и текста (Telescope)#
| Шорткат | Что ищет |
|---|---|
<leader>sf |
файл по имени |
<leader>sg |
grep по всему проекту (live grep) |
<leader>sw |
слово под курсором по проекту |
<leader>s. |
недавно открытые файлы |
<leader>sh |
справка :help |
<leader>sk |
список всех кейбиндов |
<leader>sd |
все диагностики LSP по проекту |
<leader>sr |
повторить прошлый поиск |
<leader>sc |
список всех команд : |
<leader>s/ |
grep только по открытым буферам |
<leader>sn |
поиск по файлам самого конфига nvim |
<leader>/ |
fuzzy поиск внутри текущего буфера |
Внутри окна Telescope:
<C-n>/<C-p>— следующий / предыдущий результат<CR>— открыть<C-v>— открыть в вертикальном сплите<C-x>— открыть в горизонтальном сплите<C-/>(insert) или?(normal) — справка по всем кнопкам пикера
Терминал (toggleterm)#
| Шорткат | Что делает |
|---|---|
<C-\> |
toggle терминал (горизонтальный снизу, высота 15 строк) |
<leader>tt |
то же самое (явный шорткат) |
<leader>tf |
плавающий терминал (floating) |
<leader>tv |
вертикальный терминал (справа) |
Внутри терминала:
<Esc><Esc>— выйти из режима набора (terminal-mode → normal)iилиa— вернуться в режим набора<C-\>— спрятать терминал (буфер останется живым; вернуть тем же шорткатом)
Несколько терминалов одновременно. Префикс перед <C-\> задаёт номер:
1<C-\>→ терминал №12<C-\>→ терминал №2
И так далее. Можно держать рядом dev-сервер, тесты и git.
LSP (для Rust, Python, Lua и т.д.)#
Срабатывает только когда буфер привязан к LSP (.rs, .py, .lua…).
| Шорткат | Что делает |
|---|---|
K |
hover — описание символа под курсором |
grd |
goto definition |
grD |
goto declaration |
grr |
список references |
gri |
goto implementation |
grt |
goto type definition |
grn |
rename символа во всех файлах |
gra |
code action (импорт, fix, рефакторинг) |
gO |
символы в текущем файле |
gW |
символы по всему проекту |
<leader>th |
toggle inlay hints (подсказки типов) |
<leader>q |
список диагностик текущего файла в quickfix |
<leader>f |
отформатировать буфер (conform.nvim) |
Прыжки по диагностикам (встроено в Neovim):
]d— следующая диагностика[d— предыдущая
Git (gitsigns)#
В левой колонке знаки + ~ _ — добавлено / изменено / удалено.
Все шорткаты ниже работают только в файлах, которые лежат в git-репо (gitsigns подключается через on_attach).
Навигация по изменениям:
| Шорткат | Что делает |
|---|---|
]c |
следующий hunk |
[c |
предыдущий hunk |
Stage / reset (normal и visual режим — в visual работает на выделенный диапазон):
| Шорткат | Что делает |
|---|---|
<leader>hs |
stage hunk (под курсором или выделенный) |
<leader>hr |
reset hunk — откатить изменения hunk |
<leader>hS |
stage весь буфер |
<leader>hR |
reset весь буфер |
Просмотр:
| Шорткат | Что делает |
|---|---|
<leader>hp |
preview hunk во всплывающем окне |
<leader>hi |
preview hunk прямо в буфере (inline) |
<leader>hb |
blame текущей строки (полный, с сообщением коммита) |
<leader>hd |
diff против индекса (staged) |
<leader>hD |
diff против последнего коммита (HEAD) |
<leader>hq |
все hunks текущего файла в quickfix |
<leader>hQ |
все hunks всех файлов в quickfix |
Toggle:
| Шорткат | Что делает |
|---|---|
<leader>tb |
toggle inline blame для каждой строки |
<leader>tw |
toggle word-level diff (подсветка изменённых слов) |
Text object:
| Команда | Что делает |
|---|---|
ih |
inner hunk — работает с d, c, y, v (vih, dih) |
Это рекомендуемые keymaps из
lua/kickstart/plugins/gitsigns.lua. Подробности —:help gitsigns-usage.
Для коммитов/пушей удобнее ставитьtpope/vim-fugitiveилиNeogitOrg/neogit— сейчас их нет, для этого выходи в терминал (<C-\>) и пишиgitруками.
Редактирование (mini.surround, mini.ai)#
Surround (обрамить чем-то):
| Команда | Что делает |
|---|---|
saiw) |
Surround Add Inner Word скобками () |
saiw" |
обернуть слово в кавычки |
sd" |
Surround Delete — снять кавычки |
sr"' |
Surround Replace — заменить " на ' |
Text objects (используются с операторами d, c, y, v):
| Команда | Что делает |
|---|---|
va) |
visual вокруг скобок (с самими скобками) |
vi) |
visual внутри скобок (без скобок) |
ci" |
change inside quotes |
da{ |
delete around braces |
yinq |
yank inside next quote |
Прочее полезное#
| Шорткат / команда | Что делает |
|---|---|
<Esc> (в normal) |
убрать подсветку поиска |
:Lazy |
менеджер плагинов — статус, обновить, очистить |
:Mason |
менеджер LSP/линтеров/форматтеров |
:LspInfo |
какие LSP прикреплены к текущему буферу |
:checkhealth |
диагностика конфига (есть ли проблемы) |
:Tutor |
встроенный туториал Vim |
which-key. Просто нажми <leader> и подожди — снизу всплывёт меню со всеми группами шорткатов. То же работает для любого префикса (g, <leader>w, <leader>s и т.д.).
Сценарии работы#
«Хочу как в IDE: дерево слева, код справа, терминал снизу»#
<leader>e ← дерево слева
<C-l> ← фокус в редактор
<leader>ws ← горизонтальный сплит — снизу появилось пустое окно
<C-\> ← в нижнем окне открылся терминал
<C-k> ← вернулись в редактор
«Открыть два файла рядом для сравнения»#
<leader>sf ← Telescope: найти первый файл, открыть
<leader>wv ← вертикальный сплит
<leader>sf ← в новом окне найти и открыть второй файл
<C-h> / <C-l> ← переключаться между ними
«Найти все использования функции и переименовать»#
курсор на имя функции
grr ← Telescope покажет все references
grn ← переименовать во всех файлах разом
«Что-то сломалось в LSP / плагине»#
:checkhealth ← общий отчёт
:LspInfo ← состояние LSP в этом буфере
:Mason ← переустановить языковой сервер
:Lazy ← статус плагинов