A clean, modular, and well-organized Neovim configuration.
This configuration is organized into the following modules:
Contains the basic Neovim settings, independent from plugins:
init.lua- Main core module that loads all core settingsoptions.lua- Basic Neovim optionsautocmds.lua- Autocommands
Contains all keyboard mappings:
init.lua- Main keymaps module with general keybindingsvscode.lua- VSCode-specific keybindings
Contains all plugin configurations, organized by category:
init.lua- Main plugin module that loads all plugin specscore/- Core functionality pluginsinit.lua- Core plugins loaderbuffers.lua- Buffer management pluginsediting.lua- Text editing pluginskeybindings.lua- Keybinding-related plugins
ui/- UI and appearance pluginsinit.lua- UI plugins loaderdashboard.lua- Dashboard pluginsexplorer.lua- Explorer pluginsnotifications.lua- Notification pluginsstatusline.lua- Status line pluginsthemes.lua- Themes and colorschemeswindows.lua- Window management plugins
lsp/- LSP, completion, and formattinginit.lua- LSP plugins loadercompletion.lua- Completion pluginscore.lua- Core LSP pluginsformatting.lua- Code formatting pluginsservers.lua- Language server configurations
editor/- Editor toolsinit.lua- Editor plugins loaderexplorer.lua- File explorer pluginsgit.lua- Git integration pluginstelescope.lua- Telescope pluginsterminal.lua- Terminal pluginstodo.lua- Todo comment pluginstreesitter.lua- Treesitter configs
Contains custom configurations:
init.lua- Main config modulecopilot.lua- Copilot configuration
Contains language-specific settings:
python.lua- Python-specific settingsplugins/- Language-specific pluginscopilot-chat.lua- GitHub Copilot Chat pluginsdevops-tools.lua- DevOps tool pluginsgo-tools.lua- Go language pluginsinit.lua- Language plugin loadermarkdown-tools.lua- Markdown pluginspython-tools.lua- Python pluginsrust-tools.lua- Rust pluginsscala-tools.lua- Scala pluginssolidity-tools.lua- Solidity pluginstypescript-tools.lua- TypeScript pluginsweb-tools.lua- Web development plugins
The main init.lua file in the root directory is the entry point that loads all modules in the correct order.
- Modular structure for easy maintenance
- Clean separation of concerns
- Easy to extend with new plugins and configurations
- VSCode-like keybindings for a familiar experience
- Comprehensive plugin setup for a modern development environment
-
Clone this repository to your Neovim configuration directory:
git clone https://github.com/yourusername/nvim-config.git ~/.config/nvim -
Start Neovim:
nvim -
The plugin manager will automatically install all plugins on the first run.
To add your own customizations:
- For new plugins, add them to the appropriate file in
lua/plugins/or create a new file inlua/custom/plugins/. - For new keybindings, add them to
lua/keymaps/init.lua. - For new options, add them to
lua/core/options.lua. - For new autocommands, add them to
lua/core/autocmds.lua.
MIT