A comprehensive, well-documented Neovim configuration built for modern development workflows. This setup provides a powerful IDE-like experience while maintaining the speed and flexibility of Neovim.
- GitHub Copilot integration with custom key mappings
- Context-aware code suggestions and completions
- Multi-language AI assistance
- Python: Pyright LSP, virtual environment management, debugging
- TypeScript/JavaScript: ts_ls LSP, Jest/Vitest testing, ESLint integration
- Lua: lua_ls LSP with Neovim API completion
- Auto-installation of language servers via Mason
- nvim-cmp with multiple sources (LSP, snippets, buffer, path)
- Smart Tab completion with context awareness
- Snippet expansion with LuaSnip
- Command-line and search completion
- Catppuccin theme with customizable variants
- Lualine status line with git and LSP integration
- Bufferline for tab-like buffer management
- nvim-tree file explorer with git integration
- Telescope fuzzy finder for files, grep, and symbols
- Neotest framework with Python and JavaScript adapters
- nvim-dap debugging for Python and JavaScript
- Coverage visualization and reporting
- Test analytics and reporting tools
- Git integration with Gitsigns (blame, diff, hunks)
- Comment.nvim for intelligent commenting
- Treesitter for advanced syntax highlighting
- Auto-pairs and auto-tagging for HTML/JSX
- Which-key for discoverable key mappings
- Neovim >= 0.9.0
- Git
- A Nerd Font (for icons)
- Node.js (for TypeScript support)
- Python 3.8+ (for Python support)
-
Backup existing configuration (if any):
mv ~/.config/nvim ~/.config/nvim.backup
-
Clone this configuration:
git clone <your-repo-url> ~/.config/nvim
-
Launch Neovim:
nvim
Plugins will be automatically installed on first launch.
-
Install language servers:
:Mason
-
Setup GitHub Copilot (optional):
:Copilot setup
~/.config/nvim/
├── init.lua # Main entry point
├── README.md # This file
├── SETUP_GUIDE.md # Detailed usage guide
└── lua/
├── core/ # Core Neovim settings
│ ├── options.lua # Editor options and settings
│ ├── keymaps.lua # Key mappings
│ └── autocmds.lua # Auto commands
├── plugins/ # Plugin configurations
│ ├── init.lua # Basic plugins (Copilot, Comment, etc.)
│ ├── lsp/ # LSP configurations
│ │ └── init.lua # Language server setup
│ ├── completion.lua # Completion engine (nvim-cmp)
│ ├── ui.lua # UI enhancements
│ ├── tools.lua # Development tools (Telescope, Git)
│ ├── debug.lua # Debugging configuration
│ └── test*.lua # Testing framework
└── lang/ # Language-specific configurations
└── python.lua # Python-specific settings
| Key | Action |
|---|---|
<leader>ff |
Find files |
<leader>fg |
Live grep |
<leader>fr |
Recent files |
<leader>fb |
Buffers |
| Key | Action |
|---|---|
gd |
Go to definition |
gD |
Go to declaration |
gr |
Show references |
K |
Hover documentation |
<space>ca |
Code actions |
<space>rn |
Rename symbol |
<space>f |
Format buffer |
| Key | Action |
|---|---|
Ctrl+J |
Accept suggestion |
Ctrl+L |
Accept word |
Ctrl+K |
Accept line |
Alt+] |
Next suggestion |
Alt+[ |
Previous suggestion |
Ctrl+] |
Dismiss suggestion |
| Key | Action |
|---|---|
<leader>vs |
Select virtual environment |
<leader>vc |
Select cached virtual environment |
| Key | Action |
|---|---|
<leader>gs |
Git status |
<leader>gb |
Git blame |
<leader>gd |
Git diff |
Edit lua/plugins/ui.lua and modify the Catppuccin setup or replace with your preferred colorscheme.
- Open Mason:
:Mason - Install your language server
- Add configuration in
lua/plugins/lsp/init.lua
Create snippet files in ~/.config/nvim/snippets/:
snippets/
├── python.json
├── javascript.json
└── lua.json
Modify lua/core/keymaps.lua for global mappings or individual plugin files for plugin-specific mappings.
- LSP not working: Run
:LspInfoand:Masonto check server status - Copilot not suggesting: Run
:Copilot statusand:Copilot setup - Completion not working: Run
:checkhealth nvim-cmp - Python issues: Use
:VenvSelectto choose the correct environment
- Check
:checkhealthfor any issues - Disable unused plugins in configuration files
- Adjust
updatetimeinlua/core/options.lua
This configuration is extensively documented:
- Every configuration file includes comprehensive comments
SETUP_GUIDE.mdprovides detailed usage instructions- Inline help available via
:helpfor Neovim features
Feel free to:
- Report issues or bugs
- Suggest improvements
- Submit pull requests
- Share your customizations
This configuration is provided as-is for educational and personal use. Feel free to modify and distribute according to your needs.
Built with these amazing plugins and tools:
- lazy.nvim - Plugin manager
- nvim-lspconfig - LSP configuration
- nvim-cmp - Completion engine
- telescope.nvim - Fuzzy finder
- catppuccin - Theme
- And many more amazing plugins from the Neovim community!
Happy coding with Neovim! 🎉