A feature-rich Neovim configuration built on LazyVim, enhanced with AI integration, productivity tools, and custom workflows.
- AI-Powered Development: Integrated Claude Code support for intelligent coding assistance
- 16+ Curated Plugins: Carefully selected tools for modern development workflow
- Emacs-Style Keybindings: Familiar insert-mode navigation for productivity
- REST API Testing: Built-in HTTP client with kulala.nvim
- Beautiful UI: Gruvbox theme with enhanced visual elements
- Modular Configuration: Easy to customize and extend
- Editor: Neovim (>= 0.9.0)
- Framework: LazyVim
- Plugin Manager: lazy.nvim
- Language: Lua
- Theme: Gruvbox
Before installation, ensure you have:
- Neovim >= 0.9.0
- Git for cloning and plugin management
- A Nerd Font installed and configured in your terminal (for icons)
- clipboard-provider command (optional, for clipboard synchronization)
-
Backup your existing configuration (if any):
mv ~/.config/nvim ~/.config/nvim.backup
-
Clone or symlink this repository:
git clone <your-repo-url> ~/.config/nvim # or symlink if you manage dotfiles elsewhere ln -s /path/to/this/repo ~/.config/nvim
-
Launch Neovim and install plugins:
nvim
Wait for lazy.nvim to automatically install all plugins.
-
Configure environment variables: Create a
.envfile in the config directory with required API keys:OPENAI_API_KEY=your_openai_key_here OPENAI_BASE_URL=https://openrouter.ai/api/v1 CONTEXT7_API_KEY=your_context7_key_here GOOGLE_GEMINI_API_KEY=your_gemini_key_here # Add other keys as needed -
Optional: Setup MCP servers: Configure
.mcp.jsonfor Model Context Protocol integration (e.g., context7).
- ClaudeCode.nvim - Claude Code MCP server integration for AI-powered assistance
- nvim-tree - File explorer with advanced features and custom keybindings
- telescope - Fuzzy finder for files, buffers, and more
- dropbar - Winbar showing current code context
- outline - Symbol outline and navigation
- blink.cmp - Fast and feature-rich completion engine
- gruvbox - Retro groove color scheme
- bufferline - Enhanced buffer and tab line
- colorful-menu - Colorized completion menu
- snacks - Collection of QoL improvements
- rest.nvim (kulala) - REST API client with .http file support
- openapi - OpenAPI specification integration
- markdown-preview - Live markdown preview in browser
- translator - AI-powered text translation
- fortune - Display random quotes and tips
- tmux - Seamless tmux integration
<C-b>/<C-f>- Move cursor left/right<C-a>- Move to line start<C-n>/<C-p>- Move cursor down/up<C-s>- Save file
<leader>ab- Add current buffer to Claude context<leader>aw- Send selection (visual mode) or add file from tree<leader>ar- Restart Claude Code server<leader>aj/<leader>ak- Accept/reject diff (vim-style j/k)
<leader>Rs- Send HTTP request<leader>Rt- Toggle headers/body view<leader>Rb- Open REST scratchpad<leader>Rc- Copy request as cURL
Note: For a complete list of keybindings, see
lua/config/keymaps.lua
Use StyLua for consistent Lua formatting:
stylua .Configuration: 2-space indentation, 120 column width (see stylua.toml)
In Neovim:
:Lazy " Open plugin manager UI
:Lazy sync " Install/update/clean plugins
:Lazy update " Update all plugins
:Lazy clean " Remove unused plugins
:Lazy restore " Restore from lazy-lock.json- Core config:
lua/config/- Options, keymaps, autocmds, lazy.nvim setup - Plugin configs:
lua/plugins/- Individual plugin configurations - Environment:
.env- API keys and environment variables - Code style:
stylua.toml- Lua formatter configuration
-
Create a new file in
lua/plugins/(e.g.,my-plugin.lua) -
Return a lazy.nvim spec table:
return { "author/plugin-name", event = "VeryLazy", opts = {}, }
-
Restart Neovim - plugins are auto-loaded from
lua/plugins/
- LazyVim Documentation - Comprehensive guide to LazyVim
- lazy.nvim - Plugin manager documentation
- CLAUDE.md - AI assistant guidance and detailed implementation notes
This configuration is released under the MIT License. See LICENSE for details.