β If you find this config helpful, please star the repository! It motivates me to keep improving and adding new features.
A modern, feature-rich Neovim configuration built with Lua and managed by lazy.nvim. Organized, fast, and beautiful - just the way it should be.
- π¨ Beautiful UI - Catppuccin theme with optional transparency
- π― Centered Command Palette - Noice.nvim for beautiful cmdline with icons
- π¦ Smart Plugin Management - lazy.nvim with organized structure
- π Fuzzy Finding - Snacks picker for files, grep, buffers
- π³ File Explorer - Snacks explorer (nvim-tree and oil.nvim also available)
- π‘ Full LSP Support - Auto-completion, diagnostics, and formatting
- π― GitHub Copilot - AI-powered code completion
- π Git Integration - LazyGit integration with diff support
- π Smart Statusline - Shows git status, diagnostics, and "I use Arch btw"
- π§ͺ Testing - vim-test integration
- π Markdown & API Preview - Live preview for markdown and Swagger/OpenAPI
- π³ Docker Management - LazyDocker integration
- π Discord Presence - Show what you're coding with cord.nvim
- π΅ Now Playing - Dashboard shows current song via playerctl
- π¨ Code Folding - nvim-ufo for smart folding
- β‘ Fast Startup - Optimized lazy loading (~80ms with 26+ plugins)
- Neovim >= 0.9.0
- Git
- A Nerd Font (recommended: JetBrainsMono Nerd Font)
- Node.js (for LSP servers and Copilot)
- Ripgrep (for grep functionality)
- LazyGit (optional, for git integration)
- LazyDocker (optional, for docker management)
- tmux (for splitting tabs)
# Backup your existing config (if any)
mv ~/.config/nvim ~/.config/nvim.backup
# Clone this repository
git clone https://github.com/MannuVilasara/nvim.git ~/.config/nvim
# Start Neovim
nvimLazy.nvim will automatically install all plugins on first launch.
Plugins are organized into categories for better maintainability. See STRUCTURE.md for the complete organization guide.
- lazy.nvim - Modern plugin manager
- plenary.nvim - Lua utility functions
- catppuccin - Beautiful color scheme with transparency support
- lualine.nvim - Customizable statusline with git, diagnostics, and OS info
- bufferline.nvim - Buffer/tab line with navigation shortcuts
- noice.nvim - Enhanced cmdline with centered popup and icons
- nvim-web-devicons - File icons everywhere
- nvim-colorizer.lua - Live color preview
- dressing.nvim - Better UI for input/select
- fidget.nvim - LSP progress notifications
- snacks.nvim - Dashboard with now playing and utilities
- nvim-treesitter - Better syntax highlighting and code understanding
- nvim-autopairs - Auto-close brackets and quotes
- comment.nvim - Smart commenting (gcc, gbc)
- which-key.nvim - Keybinding hints popup
- nvim-ufo - Smart code folding with treesitter
- nvim-tree.lua - File explorer sidebar
- oil.nvim - Edit filesystem like a buffer
- nvim-lspconfig - Easy LSP server configurations
- nvim-cmp - Powerful completion engine
- cmp-nvim-lsp - LSP completion source
- cmp-buffer - Buffer word completion
- cmp-path - File path completion
- LuaSnip - Snippet engine
- cmp_luasnip - Snippet completion source
- none-ls.nvim - Formatting and linting
- conform.nvim - Fast code formatter
- copilot.lua - GitHub Copilot integration
- toggleterm.nvim - Terminal management
- lazydocker.nvim - Docker TUI integration
- vim-test - Test runner
- cord.nvim - Discord Rich Presence
- nvim-tmux-navigation - Seamless tmux/vim navigation
- rails.nvim - Ruby on Rails utilities
- markdown-preview.nvim - Live markdown preview
- swagger-preview.nvim - Swagger/OpenAPI preview
<leader>is set toSpace
f- Find Filen- New Fileg- Find Text (Grep)r- Recent Filesc- Open ConfigL- Lazy Plugin Managerq- Quit
<C-p>- Find Files<leader><leader>- Recent Files<leader>fb- Buffers<leader>fg- Grep Files<leader>p- Command Palette<leader>fh- Help Pages<leader>fc- Colorschemes<leader>fk- Keymaps
<leader>ee- Toggle Explorer
Tab- Next BufferShift+Tab- Previous Buffer<leader>bd- Delete Buffer<leader>bb- Pick Buffer<leader>b1-9- Go to Buffer 1-9
<leader>lg- LazyGit<leader>gl- LazyGit Log (current file)
<leader>sf- Toggle Scratch Buffer<leader>S- Select Scratch Buffer
zR- Open all foldszM- Close all foldsza- Toggle fold under cursorzj- Go to next foldzk- Go to previous fold
<leader>na- Info notification<leader>nb- Warning notification<leader>nc- Notification with annotation<leader>np- Progress spinner demo
Edit lua/plugins/ui/catppuccin.lua and change:
local transparent = true -- Set to false to disable transparencyIn lua/plugins/ui/catppuccin.lua, change the colorscheme command:
vim.cmd.colorscheme("catppuccin-mocha") -- mocha, macchiato, frappe, or latteAdd new plugin files in the appropriate category:
- UI plugins β
lua/plugins/ui/ - Editor plugins β
lua/plugins/editor/ - LSP plugins β
lua/plugins/lsp/ - Tools β
lua/plugins/tools/
They will be automatically loaded by lazy.nvim.
- Core options:
lua/core/options.lua(orlua/vim-options.luaif not migrated) - Plugin-specific: Edit the individual plugin file
~/.config/nvim/
βββ init.lua # Entry point with lazy.nvim setup
βββ lazy-lock.json # Plugin version lock file
βββ STRUCTURE.md # Organization guide
βββ reorganize.sh # Migration script
βββ README.md # This file
β
βββ lua/
β βββ core/ # Core configuration (optional, organized structure)
β β βββ options.lua # Vim options and settings
β β
β βββ vim-options.lua # Vim options (legacy, can be migrated to core/)
β βββ plugins.lua # Lazy.nvim bootstrap
β β
β βββ plugins/ # Plugin configurations (organized by category)
β βββ ui/ # UI & Appearance
β β βββ catppuccin.lua
β β βββ lualine.lua
β β βββ bufferline.lua
β β βββ noice.lua
β β βββ snacks.lua
β β βββ dressing.lua
β β βββ fidget.lua
β β βββ nvim-colorizer.lua
β β
β βββ editor/ # Editor enhancements
β β βββ treesitter.lua
β β βββ autopairs.lua
β β βββ comment.lua
β β βββ which-key.lua
β β βββ ufo.lua
β β βββ nvim-tree.lua
β β βββ oil.lua
β β
β βββ lsp/ # LSP & Completion
β β βββ lsp-config.lua
β β βββ completions.lua
β β βββ none-ls.lua
β β βββ formatting.lua
β β
β βββ git/ # Git tools (future)
β β
β βββ tools/ # Development tools
β βββ copilot.lua
β βββ toggleterm.lua
β βββ lazydocker.lua
β βββ vim-test.lua
β βββ cord.lua
β βββ ...
# Inside Neovim
:Lazy sync# Inside Neovim
:LspInfo
:Mason# Inside Neovim
:TSUpdate- Health Check - Use
:checkhealthto diagnose issues - Plugin Manager - Run
:Lazyto manage plugins - LSP Servers - Use
:Masonto install LSP servers, formatters, and linters - Keybinding Help - Press
<leader>and wait to see available keybindings (which-key) - Transparency - Toggle in
lua/plugins/ui/catppuccin.luawith one line - Now Playing - Dashboard shows your current song via playerctl (Spotify, VLC, etc.)
- Command Palette - Press
:for centered command palette with icons - Code Folding - Use
zato toggle folds,zR/zMto open/close all
Feel free to fork this repository and customize it to your needs! Found a bug or have a suggestion? Open an issue!
MIT License - Feel free to use and modify as you wish.
Thanks to the Neovim community and all plugin authors for their amazing work!
Special thanks to:
- folke - For lazy.nvim, noice.nvim, and snacks.nvim
- catppuccin - For the beautiful theme
- The entire Neovim community for making this possible
If this configuration helped you or inspired your setup, please consider:
- β Starring the repository - It really motivates me!
- π΄ Forking and customizing - Make it your own
- π Reporting issues - Help improve it for everyone
- π¬ Sharing feedback - Let me know what you think
Star the repo if you found it helpful! It means a lot to me! β
Note: I use Arch btw π§