Tip
π·πΊ Π ΡΡΡΠΊΠ°Ρ Π²Π΅ΡΡΠΈΡ: README.ru.md
Enhanced LazyVim configuration with extensive customizations, UI improvements, and workflow optimizations.
lazyvimx is a comprehensive enhancement layer built on top of LazyVim that provides 48 optional extras and 33 override modules to create a highly polished, feature-rich Neovim experience.
- Advanced theming with deep customization for Catppuccin and Tokyo Night
- Automatic theme switching based on system light/dark mode
- Enhanced UI components with consistent rounded borders and custom icons
- Better statusline with custom mode indicators and visual elements
- Improved dashboard with custom ASCII art and styled sections
- Symbol usage indicators showing references and implementations inline
- Smart buffer management with groups, automatic cleanup, and tab scoping
- Enhanced code navigation with tree-sitter aware motions
- Better diagnostics display with inline messages
- Git workflow improvements including GitLab MR integration and conflict resolution
- Advanced completion with Blink.cmp integration
- AI coding assistant support via Avante
- Russian keyboard support via langmapper
- Repeatable actions for buffer operations
- Auto-save to chezmoi on LazyVim updates
- Local project configuration support
- VSCode integration for hybrid workflows
- Performance optimizations including inactive LSP cleanup
- Neovim >= 0.10.0
New to lazyvimx? Check out ready-to-use configurations in examples/:
- Minimal - Essential overrides only (~55-85ms startup)
- Full-Featured - All 48 extras enabled (~80-120ms startup)
- VSCode User - Optimized for VSCode Neovim
- Russian Keyboard - With langmapper support
π‘ Real Example: See author's configuration for a production setup.
- Create
~/.config/nvim/init.luawith the following content:
local lazy_opts = {
spec = { { "aimuzov/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)- Start Neovim:
nvimThat's it! lazyvimx will automatically install LazyVim and all required plugins on first launch.
- Configure lazyvimx (optional):
You can configure lazyvimx in two ways:
Option A: Add opts directly in init.lua:
local lazy_opts = {
spec = {
{
"aimuzov/lazyvimx",
import = "lazyvimx.boot",
opts = {
colorscheme = "catppuccin",
colorscheme_flavors = {
catppuccin = { "catppuccin-macchiato", "catppuccin-latte" },
tokyonight = { "tokyonight-storm", "tokyonight-day" },
},
bufferline_groups = {
-- Define custom buffer groups
-- ["name"] = "regex_pattern",
}
}
}
}
-- ... other settings
}Option B: Create a separate file ~/.config/nvim/lua/plugins/lazyvimx.lua:
return {
"aimuzov/lazyvimx",
opts = {
colorscheme = "catppuccin",
colorscheme_flavors = {
catppuccin = { "catppuccin-macchiato", "catppuccin-latte" },
tokyonight = { "tokyonight-storm", "tokyonight-day" },
},
bufferline_groups = {
-- Define custom buffer groups
-- ["name"] = "regex_pattern",
},
},
}- Enable extras:
Use the LazyVim extras UI (:LazyExtras) to enable lazyvimx extras (recommended), or add them to your config:
-- In lua/plugins/extras.lua
return {
-- Includes all enhancements for lazyvim
{ import = "lazyvimx.extras.core.overrides" },
-- Add more extras as needed
{ import = "lazyvimx.extras.ui.better-diagnostic" },
{ import = "lazyvimx.extras.motions.langmapper" },
}lazyvimx/
βββ lua/lazyvimx/
β βββ boot.lua # Bootstrap configuration
β βββ init.lua # Main module with setup function
β βββ extras/ # Optional feature modules (48 total)
β β βββ core/ # Core enhancements (overrides, keys)
β β βββ ui/ # UI improvements (19 modules)
β β βββ coding/ # Coding tools (2 modules)
β β βββ motions/ # Motion enhancements (6 modules)
β β βββ buf/ # Buffer management (3 modules)
β β βββ git/ # Git integration (4 modules)
β β βββ lang/ # Language support (2 modules)
β β βββ linting/ # Linting tools (2 modules)
β β βββ ai/ # AI assistants (1 module)
β β βββ dap/ # Debugging (1 module)
β β βββ perf/ # Performance (3 modules)
β β βββ test/ # Testing (1 module)
β βββ overrides/ # Plugin customizations (33 total)
β β βββ lazyvim/ # LazyVim core overrides (8 modules)
β β βββ snacks/ # Snacks.nvim overrides (7 modules)
β β βββ bufferline/ # Bufferline overrides (6 modules)
β β βββ other/ # Other plugins (13 modules)
β βββ util/ # Utility functions
β βββ general.lua # General utilities
β βββ layout.lua # Layout management
βββ init.lua # Entry point guard
Enable all core enhancements core.all via :LazyExtras (recommended) or add the import to your config:
{ import = "lazyvimx.extras.core.all" }This includes:
- Overrides: All plugin customizations
- Extras: All available extras
- Keys: Custom keybindings
- Notifications: Missing extras warnings
{ import = "lazyvimx.extras.core.overrides" } -- Plugin overrides
{ import = "lazyvimx.extras.core.extras" } -- All extras
{ import = "lazyvimx.extras.core.keys" } -- Custom keybindings- ARCHITECTURE.md - Technical architecture and implementation details (π·πΊ)
- CONFIGURATION.md - Configuration guide and options (π·πΊ)
- EXTRAS.md - Complete guide to all 48 extras (π·πΊ)
- API.md - API reference and utility functions (π·πΊ)
ui.better-diagnostic- Inline diagnostic messagesui.better-float- Consistent floating window stylesui.symbol-usage- Reference/definition countersui.better-explorer- Yazi file manager integrationui.winbar- File path in window bar
coding.emmet- HTML/CSS expansioncoding.comments- Enhanced commenting with documentation generation
motions.langmapper- Russian keyboard supportmotions.better-move-between-words- Subword navigationmotions.sibling-swap- Tree-sitter based swappingmotions.splitting-joining-blocks- Smart block manipulation
git.gitlab- GitLab MR reviewgit.conflicts- Visual conflict resolutiongit.remote-view- Open remote repos locally
ai.avante- Cursor AI IDE emulationtest.jest- Jest testing framework
lazyvimx adds 30+ custom keybindings. Here are the highlights:
Most Used:
<leader><space>- Find files<leader>cr- LSP rename (live preview)gr- Go to references (peek view)H/L- Previous/Next buffer<leader>fy- Open Yazi file explorerw/b/e- Smart word motions (subword aware)
Productivity:
d- Delete without yanking (no clipboard pollution)<C-S-j>/<C-S-k>- Move lines up/down<C-.>/<C-,>- Swap function parameters/array elements<leader>ct- Smart split/join code blocksgx/gX- Open/browse remote Git repositories
Git & GitLab:
<leader>gL*- Full GitLab MR workflow (review, comment, approve, merge)go- Open file/selection in GitHub/GitLab browser
π Full Reference: See KEYBINDINGS.md for complete list with descriptions and requirements.
lazyvimx supports automatic light/dark variant switching:
require("lazyvimx").setup({
colorscheme = "catppuccin",
colorscheme_flavors = {
catppuccin = { "catppuccin-macchiato", "catppuccin-latte" },
},
})The system automatically switches between dark (index 1) and light (index 2) based on system theme (macOS only).
Define custom bufferline groups:
require("lazyvimx").setup({
bufferline_groups = {
["React"] = "%.tsx$",
["Tests"] = "%.test%.",
},
})lazyvimx automatically syncs lazy-lock.json and lazyvim.json to chezmoi on updates if DOTFILES_SRC_PATH is set.
Special VSCode integration mode with:
- Mode indicator synchronization
- Adjusted keybindings
- Native VSCode rename integration
- System theme detection for auto-switching colorschemes
- Trash integration for safe file deletion in neo-tree
- System open commands
lazyvimx enhances LazyVim by:
- Preserving LazyVim's design - All enhancements are opt-in via extras
- Maintaining consistency - Unified theming and visual language
- Improving usability - Smart defaults and workflow optimizations
- Supporting customization - Flexible configuration system
- Ensuring quality - Careful attention to polish and detail
- 48 optional extras across 11 categories
- 33 override modules for deep customization
- 150+ custom highlights for Catppuccin theme
- 70+ custom highlights for Tokyo Night theme
- 30+ custom keybindings
This project follows the same license as LazyVim.
Built on top of the excellent LazyVim by folke.
Author: Aleksey Imuzov (@aimuzov)