Personal Neovim configuration built on LazyVim with AI-powered development tools and workflow optimizations.
This configuration extends LazyVim with custom plugins and settings focused on:
- AI-powered coding with multiple AI assistants (Avante, CodeCompanion, Copilot)
- Terminal integration with tmux and zellij navigation
- File management with yazi integration
- Modern development with LSP, treesitter, and fuzzy finding
.config/lazyvim/
├── init.lua # Entry point - bootstraps lazy.nvim
├── lua/
│ ├── config/ # Core configuration
│ │ ├── autocmds.lua # Auto commands
│ │ ├── keymaps.lua # Key mappings
│ │ ├── lazy.lua # Plugin manager setup
│ │ └── options.lua # Vim options
│ └── plugins/ # Plugin configurations
│ ├── avante.lua # AI coding assistant
│ ├── blink.lua # Completion engine
│ ├── copilot*.lua # GitHub Copilot integration
│ ├── fzf-lua.lua # Fuzzy finder
│ ├── mcphub.lua # MCP (Model Context Protocol) hub
│ ├── yazi.lua # File manager integration
│ └── ... # Other plugin configs
└── lazy-lock.json # Plugin version lockfile
- Avante - Advanced AI coding assistant with MCP integration
- CodeCompanion - Chat-based AI assistant
- GitHub Copilot - Code completion and chat
- tmux-navigator - Seamless navigation between vim and tmux panes
- zellij-nav - Navigation support for zellij terminal multiplexer
- RPC server - Enabled by default for remote file opening from tmux popups
- yazi - Modern file manager integration
- fzf-lua - Fast fuzzy finding for files, buffers, and more
- LSP - Language server protocol support
- Treesitter - Advanced syntax highlighting and text objects
- Multicursor - Multiple cursor editing
- Diffview - Git diff and merge conflict resolution
This configuration is managed as part of the dotfiles. Install via stow:
cd ~/dotfiles
stow .- Plugin configs: Add new plugins in
lua/plugins/ - Keymaps: Modify
lua/config/keymaps.lua - Options: Adjust
lua/config/options.lua - Auto commands: Edit
lua/config/autocmds.lua
| Keybind | Mode | Description |
|---|---|---|
<leader>uB |
Normal | Show Dashboard |
<leader>ba |
Normal/Visual | Close all buffers |
U |
Normal/Visual | Redo |
gh |
Normal/Visual | Go to beginning of line |
gl |
Normal/Visual | Go to end of line |
gw |
Normal/Visual | Window mode |
gV |
Normal | Select all |
<C-a> |
Normal | Select all (no animation) |
<C-c> |
Normal/Visual | Comment line/selection |
jk/kj/jj |
Insert | Exit insert mode |
See lua/config/keymaps.lua for the complete list of custom keybindings. LazyVim default keybindings are documented at LazyVim Keymaps.
- Neovim 0.9+
- Git
- A Nerd Font for icons
- ripgrep for fuzzy finding
- fd for file finding
- Node.js for some LSP servers