My meticulously crafted Neovim setup built with Lua โ modular, performant, and optimized for developer productivity.
A thoughtfully designed Neovim configuration that balances functionality, performance, and aesthetics. Built with a modular approach using Lua for maximum flexibility and maintainability.
- ๐งฉ Modular Architecture - Logically organized configuration split into maintainable files
- ๐ Lazy-loaded Plugins - Optimized startup with lazy.nvim
- ๐ง Advanced LSP Support - Code intelligence with
mason.nvimfor easy LSP/DAP/linter management - ๐จ Elegant UI - Beautiful interface with statusline, bufferline, and carefully selected themes
- ๐ฒ Tree-sitter Integration - Enhanced syntax highlighting and code navigation
- ๐ Fuzzy Finding - Powerful search capabilities with
telescope.nvim - ๐ Enhanced Editing - Smart pairs, surrounds, commenting, and substitutions
- ๐งน Code Quality Tools - Integrated formatting and linting
- ๐ File Management - Intuitive file explorer with
nvim-tree - ๐ Git Integration - Seamless version control with
gitsigns.nvim - ๐ Task Management - TODO comment highlighting and navigation
- ๐ป Language Support - Special configurations for C++ and other languages
- โก Performance Optimized - Fast startup time without sacrificing functionality
- Neovim >= 0.9.0
- Git
- [Optional] A Nerd Font for icons
- [Optional] ripgrep for enhanced Telescope search
-
Back up your existing Neovim configuration:
mv ~/.config/nvim ~/.config/nvim.backup
-
Clone this repository:
git clone https://github.com/ankit02327/nvim-config.git ~/.config/nvim -
Start Neovim:
nvim
-
The plugin manager will automatically install all plugins on first launch.
.
โโโ init.lua # Entry point
โโโ lazy-lock.json # Plugin lockfile
โโโ lua
โ โโโ ankit # Main configuration namespace
โ โโโ core # Core Neovim settings
โ โ โโโ init.lua # Core module loader
โ โ โโโ keymaps.lua # Key mappings
โ โ โโโ options.lua # Neovim options
โ โโโ lazy.lua # Plugin manager setup
โ โโโ plugins # Plugin configurations
โ โโโ alpha.lua # Dashboard
โ โโโ autopairs.lua
โ โโโ auto-session.lua
โ โโโ bufferline.lua
โ โโโ colorscheme.lua
โ โโโ comment.lua
โ โโโ dressing.lua
โ โโโ formatting.lua
โ โโโ gitsigns.lua
โ โโโ indent-blankline.lua
โ โโโ init.lua # Plugin module loader
โ โโโ linting.lua
โ โโโ lsp
โ โ โโโ lspconfig.lua
โ โ โโโ mason.lua
โ โโโ lualine.lua
โ โโโ nvim-cmp.lua
โ โโโ nvim-cpp.lua # C++ specific settings
โ โโโ nvim-tree.lua
โ โโโ substitute.lua
โ โโโ surround.lua
โ โโโ telescope.lua
โ โโโ todo-comments.lua
โ โโโ treesitter.lua
โ โโโ trouble.lua
โ โโโ vim-maximizer.lua
โ โโโ which-key.lua
โโโ README.md
- lazy.nvim - Modern plugin manager with lazy-loading
- which-key.nvim - Displays keybindings in popup
- auto-session - Automatic session management
- vim-maximizer - Window maximization utility
- vim-tmux-navigator - Seamless navigation between tmux and vim
- lualine.nvim - Statusline
- bufferline.nvim - Buffer tabs
- alpha-nvim - Startup dashboard
- nvim-tree.lua - File explorer
- indent-blankline.nvim - Indentation guides
- dressing.nvim - Improved UI components
- tokyonight.nvim - Elegant colorscheme
- nvim-web-devicons - Nerd Font icons
- mason.nvim - Package manager for LSP servers
- nvim-lspconfig - LSP configuration
- nvim-cmp - Completion engine
- treesitter - Syntax highlighting and text objects
- telescope.nvim - Fuzzy finder
- gitsigns.nvim - Git integration
- todo-comments.nvim - TODO comment highlighting
- trouble.nvim - Pretty diagnostics list
- mason-tool-installer.nvim - Automated third-party tool installation
- lazygit.nvim - Git interface inside Neovim
- markdown-preview.nvim - Markdown real-time previewer
- live-server.nvim - Live server for HTML/web dev
- LuaSnip - Snippet engine
- nvim-autopairs - Auto-close pairs
- nvim-surround - Add/change/delete surroundings
- Comment.nvim - Smart commenting
- substitute.nvim - Enhanced substitute commands
- conform.nvim - Powerful and fast formatting
- nvim-lint - Asynchronous linting framework
- nvim-ts-autotag - Auto close and rename HTML/XML tags
- nvim-ts-context-commentstring - Context-aware commenting
- Custom C++ Configuration - Enhanced support for C++ development
| Key Binding | Mode | Description |
|---|---|---|
<Space> |
Normal | Leader key |
jk |
Insert | Escape to Normal mode |
<C-s> |
Normal/Insert | Save file |
<C-h/j/k/l> |
Normal | Navigate between windows |
<leader>e |
Normal | Toggle file explorer |
<leader>ff |
Normal | Find files |
<leader>fg |
Normal | Live grep |
<leader>fb |
Normal | Find buffers |
<leader>ca |
Normal | Code actions |
<leader>nh |
Normal | Clear search highlights |
<leader>m |
Normal | Maximize current window |
Note: This is just a subset of available keymaps. Use <leader>? to see all key bindings.
This configuration is designed to be easily customizable:
- Modify core settings in
lua/ankit/core/options.lua - Change keymappings in
lua/ankit/core/keymaps.lua - Add or remove plugins by editing files in the
lua/ankit/plugins/directory - Adjust LSP settings in
lua/ankit/plugins/lsp/
Contributions are welcome! Feel free to submit a pull request or open an issue.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Josean Martinez's Neovim Tutorial - This configuration is largely based on this excellent guide
- Neovim - The future of Vim
- All the amazing plugin authors
- The Neovim community for inspiration and support
Crafted with โค๏ธ by ankit02327