A modern, modular, and maintainable Neovim configuration built with Lua. This configuration is designed to be fast, feature-rich, and easy to extend.
- Modular Structure: Organized into logical modules for easy maintenance and extension
- Lazy Loading: Uses lazy.nvim for efficient plugin management
- Modern UI: Clean and intuitive interface with custom statusline and tabline
- Development Tools: Built-in support for various development tools and language servers
- Custom Plugins: Includes custom plugins like
mogra-tools
for managing development tools
- Neovim 0.9.0 or higher
- Git
- A Unix-like operating system (macOS, Linux)
-
Clone the repository:
git clone https://github.com/bhargavms/nvim ~/.config/nvim
-
Start Neovim:
nvim
-
The first time you start Neovim, it will:
- Bootstrap lazy.nvim
- Install all required plugins
- Set up development tools
~/.config/nvim/
├── init.lua # Main entry point
├── lua/
│ └── mogra/ # Main configuration directory
│ ├── initialization/ # Core initialization modules
│ ├── plugins/ # Plugin configurations
│ ├── options/ # Neovim options
│ ├── keybinds/ # Key mappings
│ ├── configs/ # Plugin configurations
│ ├── ui/ # UI customizations
│ └── autocmds.lua # Autocommands
├── scripts/ # Utility scripts
└── doc/ # Documentation
The configuration includes support for:
- Go development tools
- Node.js and npm
- Lua and LuaRocks
- Language servers (via Mason)
- kotlin-lsp and other tools (via Toolchain )
<leader>
is set to space- See
lua/mogra/keybinds/
for detailed key mappings
- Custom statusline
- Custom tabline
- Modern color scheme
- Improved window management
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.