Personal Neovim configuration built on NvChad v2.5 with comprehensive support for Python, JavaScript/TypeScript, and modern web development.
- Python: Pyright, mypy, ruff, black, debugpy
- JavaScript/TypeScript: TypeScript tools, ESLint, Prettier
- Web: HTML, CSS, Tailwind CSS with IntelliSense
- Auto-close & rename HTML/JSX tags
- LSP: Full language server support with auto-completion
- Debugging: DAP integration with VS Code-style keybindings (F5-F12)
- Git: LazyGit integration
- AI: Claude Code assistant (
Space c c) - Formatting: Auto-format on save with black, prettier, eslint
- Linting: mypy, ruff, eslint_d
- Rainbow delimiters: Color-coded brackets/parentheses
- Treesitter: Advanced syntax highlighting and text objects
- Tmux integration: Seamless pane navigation
- 11 themes available via NvChad
- Neovim 0.11+
- Lazygit (for git integration)
- Node.js (for JS/TS language servers) - https://nodejs.org/en/download
- Go (for some tools)
- Python virtual environment with project dependencies
- Clone this repository to your Neovim config directory:
git clone https://github.com/mukor/nvim.git ~/.config/nvim- Open Neovim - plugins will automatically install:
nvim-
Wait for lazy.nvim to install all plugins
-
Wait for Mason to install language servers and tools
-
Verify installation:
:checkhealth# Activate virtual environment
source venv/bin/activate
# Open Neovim
nvim .| Action | Keybinding |
|---|---|
| Command mode | ; |
| Exit insert mode | jk |
| LazyGit | Space g g |
| Claude Code | Space c c |
| Toggle breakpoint | Space d b or F9 |
| Start debugging | Space d c or F5 |
| Step over | Space d o or F10 |
| Step into | Space d i or F11 |
| Step out | Space d u or F12 |
See CONFIG_SUMMARY.md for complete keybinding list.
- mason.nvim - Package manager for LSP servers
- mason-tool-installer.nvim - Auto-installs tools
- mason-null-ls.nvim - Bridges Mason and none-ls
- nvim-lspconfig - LSP configurations
- pyright - Python type checking
- ruff - Python linting
- typescript-language-server - JS/TS support
- eslint - JavaScript/TypeScript linting
- tailwindcss - Tailwind CSS IntelliSense
- none-ls.nvim (formerly null-ls) - Linting/formatting integration
- conform.nvim - Format orchestration
- black - Python formatter
- prettier - JS/TS/HTML/CSS formatter
- mypy - Python type checker
- nvim-dap - Debug Adapter Protocol
- nvim-dap-ui - Debugging UI
- nvim-dap-python - Python debugging
- debugpy - Python debug adapter
- lazygit.nvim - Git interface
- claude-code.nvim - AI assistant
- tmux.nvim - Tmux integration
- package-info.nvim - npm package manager
- nvim-treesitter - Advanced syntax highlighting
- rainbow-delimiters.nvim - Colored brackets
- nvim-ts-autotag - Auto-close HTML/JSX tags
~/.config/nvim/
├── init.lua # Entry point
├── lua/
│ ├── chadrc.lua # NvChad theme (onedark)
│ ├── options.lua # Editor options
│ ├── mappings.lua # Keybindings
│ ├── configs/ # Plugin configurations
│ │ ├── lspconfig.lua
│ │ ├── null-ls.lua
│ │ ├── dap.lua
│ │ └── ...
│ └── plugins/init.lua # Plugin declarations
└── README.md # This file
- CONFIG_SUMMARY.md - Complete configuration reference with all plugins, keybindings, and workflows
- CLAUDE.md - Architecture guide for AI assistants
- ✅ Neovim 0.11+ (uses modern
vim.lsp.configAPI) - ✅ NvChad v2.5
- ✅ Supports Python 3.13 (paths configurable)
- ✅ Virtual environment detection via
$VIRTUAL_ENV
:LspInfo
:checkhealth lsp:Mason
:checkhealth mason- Ensure
$VIRTUAL_ENVis set - Check debugpy is installed:
:Mason
This is a personal configuration, but feel free to fork and adapt for your needs.
See LICENSE file.
Built with NvChad v2.5