A minimal, beautiful, and powerful Neovim configuration featuring VS Code-like functionality with smooth animations and modern UI enhancements. Perfect for developers who want a productive and visually appealing coding environment.
- π¨ Beautiful UI: Multiple dark themes (Tokyo Night, Catppuccin, Kanagawa, Rose Pine) with transparent backgrounds
- β‘ Fast Performance: Optimized startup time with lazy loading and disabled unused plugins
- π VS Code-like Experience: Familiar keybindings, file explorer, and workflow patterns
- π Smooth Animations: Animated notifications, scrolling, and UI transitions
- π§© Modern Plugin Ecosystem: Latest Neovim plugins for maximum productivity
- π Easy Setup: Automatic installation scripts for all major platforms
- π¦ Package Management: Built-in support for Mason (LSP, DAP, linters, formatters)
- π±οΈ Multi-cursor Support: VS Code-like multi-cursor editing with vim-visual-multi
- π€ AI Code Completion: Inline code suggestions with Codeium (free GitHub Copilot alternative)
- π» Enhanced Terminal: Floating, horizontal, and vertical terminal with ToggleTerm
- π Tmux Integration: Seamless navigation between Neovim windows and tmux panes
- Neovim 0.9.0 or higher
- Git
- Nerd Font (recommended: FiraCode Nerd Font, JetBrains Mono Nerd Font)
- Node.js (for LSP servers and tools)
- Python (for debugging and additional tools)
- Build tools:
make
,npm
(for building some plugins)
# Linux / MacOS (unix)
rm -rf ~/.config/nvim
rm -rf ~/.local/state/nvim
rm -rf ~/.local/share/nvim
# Flatpak (linux)
rm -rf ~/.var/app/io.neovim.nvim/config/nvim
rm -rf ~/.var/app/io.neovim.nvim/data/nvim
rm -rf ~/.var/app/io.neovim.nvim/.local/state/nvim
# Windows CMD
rd -r ~\AppData\Local\nvim
rd -r ~\AppData\Local\nvim-data
# Windows PowerShell
rm -Force ~\AppData\Local\nvim
rm -Force ~\AppData\Local\nvim-data
git clone https://github.com/maurux01/neodots ~/.config/nvim
cd ~/.config/nvim
# Use the installer script
./install-fixed.sh
# Enable script execution and run the installer
Set-ExecutionPolicy Bypass -Scope Process -Force
.\install.ps1
nvim
The first startup will automatically install all plugins via Lazy.nvim. This may take a few minutes.
- Neovim: 0.9.0 or higher
- RAM: 4GB+ recommended
- Storage: 2GB+ free space for plugins and tools
- Neovim: Latest stable version
- RAM: 8GB+ for optimal performance
- CPU: Multi-core processor
- GPU: Hardware acceleration support for smooth animations
Keybinding | Description |
---|---|
<leader>e |
Toggle file explorer (NvimTree) |
<leader>ff |
Find files (Telescope) |
<leader>fg |
Live grep (Telescope) |
<leader>fb |
Find buffers (Telescope) |
Ctrl+P |
Quick file search (VS Code style) |
Ctrl+b |
Toggle file explorer |
Ctrl+, |
Switch buffers |
Keybinding | Description |
---|---|
Ctrl+h/j/k/l |
Navigate between windows/tmux panes |
Ctrl+\ |
Navigate to previous window/pane |
<leader>wv |
Split window vertically |
<leader>ws |
Split window horizontally |
<leader>wc |
Close current window |
Keybinding | Description |
---|---|
gd |
Go to definition |
gr |
Find references |
K |
Hover documentation |
<leader>rn |
Rename symbol |
<leader>ca |
Code actions |
<leader>f |
Format code |
<leader>d |
Toggle debugger UI |
Keybinding | Description |
---|---|
Ctrl+d |
Select word under cursor (add cursor) |
Ctrl+Alt+d |
Select all occurrences of word |
Ctrl+Alt+j/k |
Add cursor up/down |
Keybinding | Description |
---|---|
Ctrl+g |
Accept AI suggestion |
Ctrl+; |
Next suggestion |
Ctrl+, |
Previous suggestion |
Ctrl+x |
Clear suggestions |
Keybinding | Description |
---|---|
Ctrl+\ |
Toggle floating terminal |
<leader>tt |
Toggle terminal |
<leader>tf |
Floating terminal |
<leader>th |
Horizontal terminal |
<leader>tv |
Vertical terminal |
<leader>tg |
LazyGit terminal |
<leader>tn |
Node.js REPL |
<leader>tp |
Python REPL |
<leader>ts |
PowerShell terminal |
Keybinding | Description |
---|---|
<leader>gg |
Open LazyGit |
<leader>gb |
Toggle git blame |
<leader>gd |
View git diff |
<leader>gs |
Stage hunk |
<leader>gu |
Undo stage hunk |
Keybinding | Description |
---|---|
<F5> |
Start/continue debugging |
<F9> |
Toggle breakpoint |
<F10> |
Step over |
<F11> |
Step into |
<F12> |
Step out |
<leader>db |
Toggle breakpoint |
<leader>dr |
Open debugger UI |
- tokyonight.nvim - Beautiful color scheme with multiple variants
- lualine.nvim - Customizable status line
- nvim-tree.lua - File explorer with icons
- bufferline.nvim - Tab-like buffer interface
- indent-blankline.nvim - Indentation guides
- nvim-lspconfig - Language Server Protocol configuration
- mason.nvim - Package manager for LSP servers, DAP, linters, formatters
- nvim-treesitter - Better syntax highlighting and code parsing
- nvim-cmp - Auto-completion engine
- LuaSnip - Snippet engine
- telescope.nvim - Fuzzy finder for files, grep, and more
- gitsigns.nvim - Git integration in the gutter
- Comment.nvim - Smart commenting
- nvim-autopairs - Auto-pairing of brackets and quotes
- which-key.nvim - Keybinding hints
- vim-tmux-navigator - Seamless tmux integration
- nvim-dap - Debug Adapter Protocol
- nvim-dap-ui - Debugger UI interface
- nvim-dap-virtual-text - Virtual text for debugging
-
nvim-notify - Animated notifications
-
mini.animate - Minimal animations for UI elements
~/.config/nvim/
βββ init.lua # Main entry point
βββ lua/
β βββ config/
β β βββ options.lua # Neovim options
β β βββ keymaps.lua # Key mappings
β β βββ autocmds.lua # Auto commands
β βββ plugins/
β β βββ ui.lua # UI plugins
β β βββ tools.lua # Tool plugins
β β βββ lsp.lua # LSP plugins
β βββ utils/
β βββ theme_switcher.lua # Theme utilities
βββ stylua.toml # Formatting configuration
The configuration includes multiple dark themes. To switch themes, use the <leader>th
keybinding.
Available themes: tokyonight
, catppuccin
, kanagawa
, rose-pine
- Add the plugin to the appropriate file in
lua/plugins/
- Follow the existing pattern for plugin configuration
- Run
:Lazy sync
to install the new plugin
Edit lua/config/keymaps.lua
to add or modify keybindings. Follow the existing pattern for consistency.
# Linux/macOS - Clear all Neovim data
rm -rf ~/.local/share/nvim
rm -rf ~/.local/state/nvim
rm -rf ~/.cache/nvim
# Windows PowerShell - Clear all Neovim data
rm -Force -Recurse ~\AppData\Local\nvim-data
rm -Force -Recurse ~\AppData\Local\Temp\nvim
# Then restart Neovim to reinstall everything
nvim
# If you get treesitter.configs not found errors:
# 1. Clear all data (commands above)
# 2. Or manually remove treesitter plugins:
# Windows PowerShell
rm -Force -Recurse ~\AppData\Local\nvim-data\lazy\nvim-treesitter*
# Linux/macOS
rm -rf ~/.local/share/nvim/lazy/nvim-treesitter*
# Then restart Neovim
nvim
# If plugins have local changes preventing updates:
# In Lazy.nvim interface:
# 1. Press 'x' to remove the problematic plugin
# 2. Press 'I' to install it again
# Or manually remove specific plugins:
# Windows PowerShell
rm -Force -Recurse ~\AppData\Local\nvim-data\lazy\markdown-preview.nvim
rm -Force -Recurse ~\AppData\Local\nvim-data\lazy\nvim-treesitter
# Linux/macOS
rm -rf ~/.local/share/nvim/lazy/markdown-preview.nvim
rm -rf ~/.local/share/nvim/lazy/nvim-treesitter
# Then run :Lazy sync in Neovim
# Install missing LSP servers via Mason
:MasonInstall lua_ls pyright tsserver
# Check startup time
nvim --startuptime startup.log
# Disable heavy plugins temporarily if needed
Ensure required dependencies are installed:
# For Python debugging
pip install debugpy
Run :checkhealth
in Neovim to diagnose common issues with:
- LSP servers
- Treesitter parsers
- Plugin dependencies
- Check the
:help
documentation in Neovim - Review plugin documentation for specific issues
- Open an issue on GitHub with detailed error messages
MIT License - feel free to use, modify, and distribute this configuration.
Contributions are welcome! Please feel free to:
- Open issues for bugs or feature requests
- Submit pull requests for improvements
- Share your customizations and tips
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
Happy Coding! π
If you enjoy this configuration, consider giving it a star on GitHub!