A modern, feature-rich Neovim configuration built for productivity and aesthetics
| ๐จ | Beautiful UI | Multiple colorschemes with transparent backgrounds |
| โก | Blazing Fast | Lazy loading and optimized performance |
| ๐ง | Smart LSP | 40+ language servers configured |
| ๐ | Powerful Search | Snacks.nvim picker integration |
| ๐ | Completion | blink.cmp with emoji and dictionary support |
| ๐ฏ | File Navigation | Harpoon for lightning-fast file switching |
- Neovim >= 0.11.0
- Git >= 2.19.0
- Node.js >= 16.0 (for certain LSP servers)
- Python >= 3.8 (for Python support)
- A Nerd Font installed
- Terminal with true color support
# For better search performance
brew install fzf ripgrep fd
# For clipboard support
brew install xclip # Linux
brew install pbcopy # macOS (built-in)
# For word definitions
brew install wordnet# Backup existing config
mv ~/.config/nvim ~/.config/nvim.bak
mv ~/.local/share/nvim ~/.local/share/nvim.bak
# Clone this config
git clone <your-repo-url> ~/.config/nvim
# Create backup directories
mkdir -p ~/.backup-nvim ~/.swap-nvim ~/.undo-nvim
# Launch Neovim
nvimThe plugin manager (lazy.nvim) will automatically bootstrap and install all plugins on first launch.
~/.config/nvim/
โโโ init.lua # Entry point
โโโ lua/
โ โโโ core/ # Core configuration
โ โ โโโ options.lua # Vim options
โ โ โโโ keymaps.lua # Key mappings
โ โ โโโ autocmds.lua # Auto commands
โ โ โโโ diagnostics.lua # Diagnostic settings
โ โโโ lsp/ # LSP configuration
โ โ โโโ servers.lua # Server configurations
โ โโโ plugins/ # Plugin configurations
โ โโโ coding/ # Completion, snippets
โ โโโ editor/ # Editor enhancements
โ โโโ lang/ # Language-specific
โ โโโ lsp/ # LSP plugins
โ โโโ tools/ # Git, terminal, etc.
โ โโโ ui/ # UI enhancements
This config comes with multiple beautiful colorschemes:
- ๐ Tokyo Night (default) - A clean, dark theme
- ๐ Catppuccin - Soothing pastel theme
- ๐ค Cyberdream - Futuristic cyberpunk theme
- ๐ OneDark - Classic dark theme
- ๐ฎ Sonokai - High contrast theme
- ๐ 2077 - Cyberpunk-inspired theme
Switch colorschemes: <leader>uC
Leader key:
<Space>
| Key | Mode | Action |
|---|---|---|
<C-h/j/k/l> |
Normal | Navigate windows |
<leader>e |
Normal | File explorer |
<leader>h |
Normal | Harpoon menu |
<C-t> |
Normal | Toggle terminal |
| Key | Mode | Action |
|---|---|---|
<leader><space> |
Normal | Smart find files |
<leader>ff |
Normal | Find files |
<leader>fg |
Normal | Find Git files |
<leader>fr |
Normal | Recent files |
<leader>/ |
Normal | Live grep |
<leader>, |
Normal | Buffers |
| Key | Mode | Action |
|---|---|---|
gd |
Normal | Go to definition |
gr |
Normal | References |
K |
Normal | Hover documentation |
<leader>rn |
Normal | Rename |
<leader>ca |
Normal | Code actions |
[d / ]d |
Normal | Previous/next diagnostic |
<leader>df |
Normal | Format code |
| Key | Mode | Action |
|---|---|---|
<leader>gg |
Normal | LazyGit |
<leader>gb |
Normal | Git branches |
<leader>gs |
Normal | Git status |
<leader>gl |
Normal | Git log |
<leader>gd |
Normal | Git diff |
| Key | Mode | Action |
|---|---|---|
<leader>bn |
Normal | Next buffer |
<leader>bp |
Normal | Previous buffer |
<leader>bd |
Normal | Delete buffer |
| Key | Mode | Action |
|---|---|---|
<leader>y |
Normal/Visual | Yank to system clipboard |
<leader>p |
Normal | Paste from system clipboard |
Maven:
<leader>mi- Clean install<leader>mt- Run tests<leader>mk- Package<leader>mc- Clean
CMake:
<leader>cc- Configure<leader>cm- Build<leader>cr- Run
- lazy.nvim - Plugin manager
- blink.cmp - Fast completion engine
- nvim-lspconfig - LSP configuration
- mason.nvim - LSP installer
- nvim-treesitter - Syntax highlighting
- snacks.nvim - Dashboard, pickers, and more
- lualine.nvim - Status line
- fidget.nvim - LSP progress notifications
- rainbow-delimiters.nvim - Rainbow parentheses
- harpoon - Quick file navigation
- Comment.nvim - Smart commenting
- nvim-autopairs - Auto close pairs
- auto-save.nvim - Automatic saving
- gitsigns.nvim - Git decorations
- toggleterm.nvim - Terminal integration
- trouble.nvim - Diagnostics list
- which-key.nvim - Keybinding helper
- diffview.nvim - Git diff viewer
| โ Java | ๐ Python | ๐ฆ Rust | โก C/C++ |
| ๐น Go | ๐ Lua | ๐ C# | ๐ฏ Kotlin |
| ๐ TypeScript/JavaScript | ๐จ HTML/CSS | โ๏ธ React/JSX | ๐ Tailwind CSS |
| ๐ฅ Svelte | ๐ GraphQL | ๐ฆ JSON/YAML | โจ Emmet |
- ๐ Swift
- ๐ฏ Dart
- โ๏ธ Scala
- ๐๏ธ SQL
- ๐ Markdown
- ๐ LaTeX
- ๐ PHP
- ๐ Ruby
- ๐ Terraform
- ๐ช Perl
- ๐ค Arduino
- ๐ MATLAB
This config uses Neovim 0.11+ native LSP API with vim.lsp.config() and root_markers for project detection.
All LSP servers are automatically installed via Mason on first launch:
:Mason -- Open Mason UI
:MasonUpdate -- Update all packagesServer configurations are centralized in lua/lsp/servers.lua. Each server includes:
- Filetypes: Supported file types
- Root markers: Project root detection
- Settings: Language-specific settings
- Capabilities: Completion capabilities via blink.cmp
Auto-formatting is enabled on save for all supported languages:
| Language | Formatter |
| JavaScript/TypeScript | Prettier |
| Python | Black + isort |
| Lua | StyLua |
| C/C++ | clang-format |
| Java | google-java-format |
| Rust | rustfmt |
| Go | gofmt |
| C# | CSharpier |
Toggle auto-format: Modify lua/core/autocmds.lua
- LSP completions - Intelligent code completion
- Path completions - File system paths
- Buffer completions - From open buffers
- Snippet support - LuaSnip integration
- Emoji support - ๐ Type emojis easily
- Dictionary - English word suggestions
Snippets are triggered with ; prefix:
;func โ expands to function snippet
;for โ expands to for loop
;if โ expands to if statement
Navigate snippets: <Up> / <Down>
Mark up to 4 files for instant access:
<leader>a- Add current file to Harpoon<leader>h- Open Harpoon menu<leader>1-4- Jump to marked file 1-4
Beautiful startup dashboard with:
- Recent files
- Projects
- Git status (when in git repo)
- Custom ASCII art
- Quick actions
Split diagnostics and symbols side-by-side:
<leader>xx- Bottom diagnostics panel<leader>cs- Right symbol outline (top)<leader>cl- Right LSP references (bottom)
:LspInfo " Check active LSP servers
:Mason " Verify server installation
:checkhealth lsp " Run health check:Lazy sync " Sync all plugins
:Lazy clean " Remove unused plugins
:Lazy restore " Restore to lockfile state:Lazy profile " Profile plugin load times
:checkhealth " Run full health check# Remove plugin cache
rm -rf ~/.local/share/nvim
rm -rf ~/.local/state/nvim
# Restart Neovim
nvimEdit init.lua:
vim.g.mapleader = "," -- Change from space to commaEdit lua/core/keymaps.lua:
keymap("n", "<leader>w", ":w<CR>", opts) -- Save with <leader>wEdit lua/lsp/servers.lua:
-- In get_server_list():
"your_language_server",
-- In setup_server_configs():
vim.lsp.config("your_language_server", {
filetypes = { "your_filetype" },
root_markers = { ".git" },
})Edit lua/plugins/ui/colorschemes.lua to set your preferred default:
vim.cmd.colorscheme("catppuccin") -- Change defaultContributions are welcome! Feel free to:
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
This configuration is available under the MIT License.
Built with love using:
Happy Coding! ๐
Made with โค๏ธ and Neovim