A modern, feature-rich Neovim configuration built on NvChad v2.5 with carefully selected plugins for an enhanced development experience.
- 🎨 Beautiful UI: Catppuccin theme with customized statusline and dashboard
- 🤖 AI Integration: Avante.nvim for AI-powered coding assistance
- 🔍 Smart Navigation: Flash.nvim for quick movement, enhanced Telescope fuzzy finding
- 🔧 Development Tools: Complete LSP setup, linting, formatting, and auto-completion
- 📝 Enhanced Editing: Surround operations, sort motions, and advanced text manipulation
- 🌳 Git Integration: Conflict resolution and status indicators
- 📚 Markdown Support: Live rendering and enhanced editing capabilities
Note
Some Mason packages aren't available on certain ARM processors. Watch for errors and install manually if needed.
Important
This configuration requires NvChad v2.5. For older versions, check the v2.0 branch (no longer maintained).
- Neovim >= 0.9.0
- Git
- A Nerd Font (for icons)
- GCC or equivalent C compiler
- Make
- Ripgrep (for Telescope live grep)
-
Backup existing configuration (if any):
# Backup approach (recommended) mv ~/.config/nvim{,.bak} mv ~/.local/share/nvim{,.bak} mv ~/.local/state/nvim{,.bak} # Or delete completely rm -rf ~/.config/nvim ~/.local/state/nvim ~/.local/share/nvim
-
Clone this configuration:
git clone https://github.com/v3ceban/nvchad-config.git ~/.config/nvim -
Launch Neovim:
nvim
Lazy.nvim will automatically install all plugins on first launch.
-
Enjoy your enhanced Neovim experience! 🎉
lua/
├── configs/ # Plugin configurations
│ ├── avante.lua # AI assistant settings
│ ├── cmp.lua # Completion configuration
│ ├── conform.lua # Formatting settings
│ ├── lspconfig.lua # LSP server configurations
│ └── ...
├── chadrc.lua # NvChad configuration
├── mappings.lua # Custom keybindings
├── options.lua # Neovim options
└── plugins.lua # Plugin specifications
The configuration uses <Space> as the leader key. All bindings are discoverable through Which-key.
<Space>e- Toggle file explorer (NvimTree)<Space>ff- Find files<Space>fw- Find word (live grep)<Space>fo- Recent files<Space>th- Theme selector
<M-a>- Toggle AI chat window<leader>am- Change AI provider/model<leader>ae- Edit selection with AI<leader>ah- View chat history
s+ motion - Flash jump to location<leader>st- Treesitter node selection%- Enhanced bracket/quote matching
cs- Change surroundingds- Delete surroundingys- Add surroundinggs- Sort motion/selection
- Uses html-lsp for LSP and linting
- Uses prettierd for formatting
- Uses tailwindcss-language-server for Tailwind LSP
- Uses rustywind for Tailwind classes organization
- Uses typescript-language-server for LSP
- Uses eslintd for linting
- Uses prettierd for formatting
- Requires eslint config to run linting server
- Run
npm initif not already done - Run
npm init @eslint/config@latestin the root of the project
- Run
- Uses prisma-language-server for LSP in Prisma files
- Uses intelephense for LSP and linting
- Uses php-cs-fixer for formatting
- Requires a git repo to run linting server
- To create .git run
git initin the root of the project
- To create .git run
- Uses lua-language-server for LSP and linting
- Uses stylua for formatting
- Uses bash-language-server for LSP
- Uses beautysh for formatting
- Uses clangd for LSP and linting
- Uses clang-format for formatting
- Uses python-lsp-server for LSP and linting
- Uses black and isort for formatting
- Uses gopls for LSP and linting
- Uses gofumpt, goimports-reviser, and golines for formatting
- Uses Render Markdown for inline markdown rendering
- Uses markdowny.nvim for some markdown features in Visual mode
<C-k>to add a link<C-b>to make text bold<C-i>to make text italic<C-e>to make text inline code or code block in V-Line mode
- Uses Dockerfile Language Server for LSP in Dockerfiles
- Uses Docker Compose Language Service for LSP in Docker Compose files
- NvChad - Base configuration framework
- Lazy.nvim - Modern plugin manager
- Which-key - Keybinding discovery
Advanced search and replace with smart substitutions.
<leader>sr- Search and replace with pattern matching:Subvert/child{,ren}/adult{,s}/g- Smart pluralization handling- Works with abbreviations and case coercion
AI-powered code editing with multiple provider support.
Supported Providers:
- Copilot (Claude 3.5 Sonnet - default)
- OpenAI, Deepseek, Groq, Ollama
- Web search via Tavily
Key Features:
- Code generation and editing
- File operations and web search
- Clean chat interface
- Context-aware suggestions
- nvim-lspconfig - Language Server Protocol support
- nvim-cmp - Auto-completion engine
- conform.nvim - Code formatting
- nvim-lint - Linting integration
- nvim-treesitter - Syntax highlighting
- Flash.nvim - Enhanced navigation with search labels
- Telescope - Fuzzy finder
- nvim-tree - File explorer
- dressing.nvim - Improved UI elements
- nvim-surround - Surround text objects (visual mode:
s) - vim-sort-motion - Sort with motions (
gs) - nvim-ts-autotag - Auto-close HTML/XML tags
- vim-matchquote - Enhanced
%matching
- git-conflict.nvim - Resolve merge conflicts (
<leader>cX)
- render-markdown.nvim - Live markdown rendering
- markdowny.nvim - Enhanced markdown editing in visual mode
Modify the theme in lua/chadrc.lua:
M.base46 = {
theme = "catppuccin", -- Change to your preferred theme
}Add new plugins to lua/plugins.lua:
{
"author/plugin-name",
event = "VeryLazy",
config = function()
-- Plugin configuration
end,
}Add mappings in lua/mappings.lua:
map("n", "<leader>xx", "<cmd>YourCommand<CR>", { desc = "Description" })- Plugins not loading: Run
:Lazy syncto update plugins - LSP not working: Check
:LspInfofor server status - Icons missing: Install a Nerd Font and configure your terminal
- Mason packages failing: Some packages aren't available on ARM - install manually
:help <plugin-name>- Plugin documentation:checkhealth- System health check:Lazy- Plugin manager interface:Mason- LSP server manager
- NvChad Documentation
- Conform.nvim Formatters
- LSPconfig Servers
- Nvim-lint Linters
- Lazy.nvim Plugin Spec
Contributions are welcome! Please feel free to submit issues and pull requests to improve this configuration.
Enjoy your enhanced Neovim experience! ✨