JustCaptain neovim-and-yazi-settings
deefd48d70992bb116e3c774c379b66d9d4c167d
Перейти к файлу
Код
neovim-and-yazi-settings confignvimCOMMANDS.md
anc create files deefd48 2 недели назад
294 строки 15.8 КБ
COMMANDS.md

Шпаргалка по командам и шорткатам#

Конфиг основан на 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> уже / шире

Пример рабочего раскладки. Открыл файл, хочешь редактор слева + терминал снизу + дерево слева:

  1. <leader>e — открыть дерево слева
  2. <leader>ws — горизонтальный сплит (нижнее окно)
  3. В нижнем окне <C-\> — открыть терминал
  4. <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-\> → терминал №1
  • 2<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            ← статус плагинов