lazyvimx
Слой улучшений поверх LazyVim: 51 опциональная экстра и 40 оверрайдов плагинов.
Идея простая: LazyVim остаётся как есть, а всё остальное — доводка интерфейса, навигация, git-воркфлоу, поддержка русской раскладки — включается по кусочкам. Не нравится экстра — не включаете, и её будто нет.
📑 Содержание
- Возможности · Установка · Структура · Core-модули
- Документация · Заметные экстры · Кеймапы · Конфигурация
- Интеграции · Философия · Статистика · Ссылки
✨ Возможности
🎨 Интерфейс
- Глубокая кастомизация тем — Catppuccin, Tokyo Night и Nord
- Автопереключение светлой/тёмной темы вслед за системной (macOS)
- Единый стиль UI — скруглённые рамки, согласованные размеры окон, кастомные иконки
- Улучшенный дашборд с ASCII-артом и анимацией
- Счётчики использований символов прямо в коде, как в JetBrains IDE
- Диагностика одной строкой у курсора
🚀 Продуктивность
- Умные буферы — группы в bufferline, автоочистка, изоляция по табам
- Навигация по синтаксическому дереву — перемещение и перестановка узлов
- Движения по подсловам —
w/e/bпонимают camelCase - Git-воркфлоу — ревью GitLab MR из редактора, разрешение конфликтов, просмотр удалённых репозиториев
- Отладка JS/TS через js-debug-adapter
⚙️ Удобства
- Русская раскладка через langmapper — без переключения на английскую
- Безопасная работа с sshfs-маунтами — запись «на месте», без побитых прав и симлинков
- Автосинхронизация в chezmoi при обновлениях плагинов
- Локальные конфиги проектов (
.nvim.lua) - Режим VSCode для гибридного воркфлоу
- Автообновление пакетов Mason
📦 Установка
Требования
- Neovim >= 0.10.0
- Lua 5.1 или LuaJIT в
PATH(brew install luajit) — нужно экстреmotions.better-move-between-words: luarocks.nvim собирает рокluautf8для движений по не-ASCII подсловам и без системного Lua падает
🚀 Выберите свой вариант
Впервые здесь? В examples/ лежат готовые конфигурации:
- Minimal — только оверрайды, самый быстрый старт
- Full-Featured — все 51 экстра
- VSCode User — для расширения VSCode Neovim
- Russian Keyboard — с поддержкой русской раскладки
Быстрый старт
💡 Живой пример: конфигурация автора.
- Создайте
~/.config/nvim/init.lua:
local lazy_opts = {
spec = { { "lazyvimx/nvim", name = "lazyvimx", import = "lazyvimx.boot" } },
install = { colorscheme = { "catppuccin", "tokyonight" } },
checker = { enabled = true, notify = false },
change_detection = { enabled = false },
diff = { cmd = "diffview.nvim" },
ui = {
backdrop = 100,
border = "rounded",
icons = { keys = "" },
},
}
-- Bootstrap lazy.nvim
local lazy_path = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
local lazy_url = "https://github.com/folke/lazy.nvim.git"
if not vim.loop.fs_stat(lazy_path) then
vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazy_url, lazy_path })
end
vim.opt.rtp:prepend(lazy_path)
require("lazy").setup(lazy_opts)- Запустите Neovim:
nvimНа первом запуске lazyvimx сам установит LazyVim и все нужные плагины.
- Настройте lazyvimx (по желанию):
Вариант А — opts прямо в init.lua:
local lazy_opts = {
spec = {
{
"lazyvimx/nvim",
name = "lazyvimx",
import = "lazyvimx.boot",
opts = {
colorscheme = "catppuccin",
bufferline_groups = {
-- ["имя группы"] = "lua-паттерн",
},
},
},
},
-- ... остальные настройки
}Вариант Б — отдельный файл ~/.config/nvim/lua/plugins/lazyvimx.lua:
return {
"lazyvimx/nvim",
name = "lazyvimx",
opts = {
colorscheme = "catppuccin",
bufferline_groups = {
-- ["имя группы"] = "lua-паттерн",
},
},
}Все опции, включая настройку светлых/тёмных вариантов тем (colorscheme_households), — в
Настройка.
- Включите экстры:
Через UI :LazyExtras (рекомендуется) или импортами в конфиге:
-- lua/plugins/extras.lua
return {
-- Все оверрайды плагинов
{ import = "lazyvimx.extras.core.overrides" },
-- Дальше — что нужно
{ import = "lazyvimx.extras.ui.better-diagnostic" },
{ import = "lazyvimx.extras.motions.langmapper" },
}🗂️ Структура проекта
lazyvimx/
├── lua/lazyvimx/
│ ├── boot.lua # Bootstrap-конфигурация
│ ├── init.lua # Главный модуль с setup()
│ ├── extras/ # Опциональные модули (51 + 5 core)
│ │ ├── core/ # Сборные модули: all, overrides, extras, keys, colorschemes
│ │ ├── ui/ # Интерфейс (22)
│ │ ├── motions/ # Навигация (6)
│ │ ├── buf/ # Буферы (4)
│ │ ├── git/ # Git (4)
│ │ ├── lang/ # Языки (4)
│ │ ├── perf/ # Производительность (4)
│ │ ├── coding/ # Инструменты кода (2)
│ │ ├── linting/ # Линтеры (2)
│ │ ├── colorschemes/ # Цветовые схемы (1)
│ │ ├── dap/ # Отладка (1)
│ │ └── test/ # Тестирование (1)
│ ├── overrides/ # Кастомизация плагинов (40)
│ │ ├── lazyvim/ # LazyVim (10)
│ │ ├── snacks/ # Snacks.nvim (9)
│ │ ├── bufferline/ # Bufferline (6)
│ │ └── other/ # Прочие плагины (15)
│ └── util/ # Утилиты
│ ├── general.lua # Общие (цвета, тема системы, проверка экстр)
│ └── layout.lua # Размеры сайдбаров и панелей
└── init.lua # Защита от прямого запуска репозитория🎯 Core-модули
Рекомендуемая настройка
Включите всё разом — core.all через :LazyExtras или импортом:
{ import = "lazyvimx.extras.core.all" }Внутри:
- overrides — все 40 кастомизаций плагинов
- extras — все функциональные экстры
- colorschemes — дополнительные цветовые схемы
- keys — кастомные кеймапы
- плюс уведомление, если не хватает рекомендуемых экстр LazyVim
По отдельности
{ import = "lazyvimx.extras.core.overrides" } -- Оверрайды плагинов
{ import = "lazyvimx.extras.core.extras" } -- Все экстры
{ import = "lazyvimx.extras.core.keys" } -- Кеймапы
{ import = "lazyvimx.extras.core.colorschemes" } -- Цветовые схемы📚 Документация
- EXTRAS.ru.md — справочник по всей 51 экстре
- CONFIGURATION.ru.md — настройка и опции
- KEYBINDINGS.ru.md — все кеймапы
- ARCHITECTURE.ru.md — как всё устроено
- API.ru.md — утилиты и функции
- FAQ.ru.md — частые вопросы
- TROUBLESHOOTING.ru.md — решение проблем
🎨 Заметные экстры
Интерфейс
ui.better-diagnostic— диагностика одной строкой у курсораui.better-float— единый стиль плавающих оконui.symbol-usage— счётчики использований символовui.better-explorer— файловый менеджер Yaziui.winbar— путь к файлу над окном
Навигация
motions.langmapper— русская раскладка без переключенияmotions.better-move-between-words— движения по подсловам (нужен Lua 5.1/LuaJIT вPATH, см. Требования)motions.sibling-swap— перестановка узлов tree-sittermotions.splitting-joining-blocks— разбивка/склейка блоков кода
Git
git.gitlab— ревью GitLab MR из редактораgit.conflicts— визуальное разрешение конфликтовgit.remote-view— открытие удалённых репозиториев локально
Прочее
buf.remote-mounts— безопасная работа с sshfscoding.comments— комментирование с контекстом и генерация JSDoctest.jest— Jest в Neotest
⌨️ Кеймапы
lazyvimx добавляет 60+ кастомных кеймапов. Самые ходовые:
Каждый день:
<leader><space>— найти файлы (smart)<leader>cr— LSP-переименование с живым превьюgr— референсы в peek-окнеH/L— предыдущий/следующий буфер<leader>fy— файловый менеджер Yaziw/b/e— движения по подсловам
Продуктивность:
d— удаление без копирования в регистр<C-S-j>/<C-S-k>— перемещение строк<C-,>/<C-.>— перестановка параметров и элементов массива<leader>ct— разбить/склеить блок кодаgx/gX— открыть удалённый git-репозиторий
Git и GitLab:
<leader>gL*— весь воркфлоу GitLab MR (ревью, комментарии, approve, merge)go— открыть файл или выделение в GitHub/GitLab
📖 Полный список: Кеймапы — с описаниями и указанием, какая экстра нужна для каждого кеймапа.
🔧 Конфигурация
Цветовые схемы
lazyvimx переключает светлый/тёмный вариант темы вслед за системой:
require("lazyvimx").setup({
colorscheme = "catppuccin",
})Варианты собраны в «семейства» (colorscheme_households): для каждой темы — список тёмных и
список светлых. Из коробки настроены Catppuccin, Tokyo Night и Nord; тёмная система — берётся
тёмный вариант, светлая — светлый. Подробности и формат — в
Настройка.
Группы буферов
Кастомные группы в bufferline:
require("lazyvimx").setup({
bufferline_groups = {
["React"] = "%.tsx$",
["Tests"] = "%.test%.",
},
})🤝 Интеграции
Chezmoi
При обновлении плагинов lazyvimx добавляет lazy-lock.json и lazyvim.json в chezmoi —
если утилита chezmoi установлена.
VSCode
Режим для расширения VSCode Neovim:
- синхронизация индикатора режима со статус-баром
- адаптированные кеймапы
- переименование через нативный VSCode
macOS
- определение системной темы для автопереключения цветовых схем
- удаление файлов в корзину в neo-tree
🌟 Философия
- Не ломать LazyVim — все улучшения опциональны и включаются экстрами
- Единый стиль — общая тема и визуальный язык во всех плагинах
- Умные дефолты — работает из коробки, настраивается при желании
- Внимание к деталям — от рамок окон до поведения курсора
📊 Статистика
- 51 опциональная экстра в 11 категориях
- 40 оверрайдов для глубокой кастомизации
- Сотни кастомных хайлайтов для Catppuccin, Tokyo Night и Nord
- 60+ кастомных кеймапов
🔗 Ссылки
📈 Активность
🤝 Контрибьютинг
Баги и идеи — в issues. Как устроен проект и как написать свою экстру — в Гайд контрибьютора.
📄 Лицензия
Лицензия та же, что у LazyVim.
🙏 Благодарности
Построен поверх превосходного LazyVim от folke.
Автор: Aleksey Imuzov (@aimuzov)