Архитектура конфига
Весь конфиг живёт в одном файле ~/.config/nvim/init.lua и состоит из четырёх логических слоёв:
1. Bootstrap (строки 1–10) — автоустановка менеджера плагинов lazy.nvim. При первом запуске nvim клонирует репозиторий lazy.nvim в ~/.local/share/nvim/lazy/ и добавляет его в runtime path. Дальше lazy.nvim управляет всеми остальными плагинами.
2. Глобальные настройки (строки 12–21) — leader key и визуальные опции. Leader задаётся до lazy.setup(), иначе маппинги плагинов могут подхватить неправильный leader.
3. Плагины (строки 23–150) — блок require("lazy").setup({...}). Каждый плагин — отдельная таблица с полями: имя репозитория, зависимости, функция конфигурации. Lazy.nvim автоматически скачивает и обновляет плагины.
4. Кеймапы вне плагинов (строки 152–170) — глобальные маппинги для буферов и окон, не привязанные к конкретному плагину.
Ключевые пути
| Путь | Содержимое |
|---|---|
~/.config/nvim/init.lua |
Конфигурация (единственный файл, который мы редактируем) |
~/.local/share/nvim/lazy/ |
Скачанные плагины (управляется lazy.nvim) |
~/.local/state/nvim/ |
Undo-история, shada (история команд/поиска) |
~/.cache/nvim/ |
Кеш, логи |
Плагины
lazy.nvim — менеджер плагинов
Управляет установкой, обновлением и ленивой загрузкой всех остальных плагинов. Интерфейс управления: :Lazy. Там можно обновить плагины (U), проверить состояние, посмотреть логи.
Внешний менеджер перестал быть безальтернативным: в Neovim 0.12 (март 2026) появился встроенный vim.pack — минималистичный менеджер, который ставит плагины прямо с GitHub по декларативному списку и пишет lock-файл с версиями. Формально он ещё помечен экспериментальным, но документация считает его пригодным для повседневной работы. Для конфига с ленивой загрузкой и событийными триггерами lazy.nvim по-прежнему богаче; для простого набора плагинов bootstrap-блок теперь можно убрать вовсе.
gruvbox-material — цветовая схема
Тёплая тёмная тема. Настраивается двумя параметрами: background (контрастность фона: soft / medium / hard) и foreground (палитра текста: material / mix / original). Загружается первой (priority = 1000), чтобы остальные плагины подхватили цвета.
lualine — строка статуса
Нижняя строка с информацией о текущем состоянии. Слева направо: режим → git-ветка, diff, диагностика → имя файла → кодировка, формат, тип файла → прогресс → позиция курсора. Тема синхронизирована с gruvbox-material. Требует Nerd Font для иконок.
telescope — fuzzy finder
Универсальный поиск внутри nvim. Ищет файлы, текст, буферы, историю, help — всё через единый интерфейс с fuzzy-фильтрацией. Работает относительно текущей рабочей директории (откуда запущен nvim). Использует ripgrep для grep-поиска и fzf-native для быстрой сортировки результатов.
Системные зависимости: ripgrep (обязательно для live_grep), fd (опционально, ускоряет поиск файлов), make/gcc (для компиляции fzf-native).
neo-tree — файловое дерево
Боковая панель со структурой проекта. Автоматически подсвечивает текущий открытый файл (follow_current_file). Показывает скрытые файлы, но прячет то, что в .gitignore. Поддерживает создание, удаление, переименование, копирование и перемещение файлов.
treesitter — подсветка синтаксиса
Парсит код в AST (абстрактное синтаксическое дерево) и подсвечивает на основе структуры, а не регулярных выражений. Точнее различает переменные, функции, типы, аргументы. Парсеры устанавливаются отдельно для каждого языка через :TSInstall <язык>.
Полезные команды: :TSInstallInfo — какие парсеры установлены, :InspectTree — показать AST текущего файла, :Inspect — какие highlight-группы применены к символу под курсором.
Практический минимум
Чтобы быстро начать работу после установки конфига, достаточно запомнить несколько команд:
Пробел ff— найти файлПробел fg— поиск по содержимому (live grep)Пробел e— открыть/скрыть дерево файловПробел x— закрыть текущий буфер:Lazy— открыть менеджер плагинов
Полная шпаргалка по режимам, навигации и редактированию вынесена в отдельную заметку: Neovim: рабочая справка.
Связанные заметки
- Neovim: рабочая справка — краткая шпаргалка по клавишам и командам
- Kitty terminal guide — терминал: шрифты, лигатуры и передача клавиш в Neovim
- Git: модель данных, rebase против merge и спасательные инструменты — что происходит с историей, когда редактор открывается на todo-листе rebase или на конфликте
Из библиотеки института уносят только знания. Читателей здесь не считают: посещение не регистрируется, отметок в издании не остаётся, счётчиков нет ни у одного издания фонда.
Издание пополняется и пересверяется. Текст доступен на условиях CC BY-SA 4.0 — унесённое можно передавать дальше на тех же условиях.