This repository contains a modular Neovim configuration using Lazy.nvim as the plugin manager. It includes a structured approach to plugins, keybindings, and UI enhancements for an efficient development workflow.
~/.config/nvim/
├── init.lua # Main entry point for Neovim config
├── lua/
│ ├── plugins/ # Plugin configurations
│ │ ├── init.lua # Lazy.nvim setup (manages all plugins)
│ │ ├── which-key.lua # Keybinding manager (starts disabled)
│ │ ├── plugin_keys.lua # Custom plugin keybindings
│ │ ├── telescope.lua # Fuzzy finder setup
│ │ ├── lsp.lua # LSP + Mason configurations
│ │ ├── treesitter.lua # Treesitter syntax highlighting
│ │ ├── alpha.lua # Dashboard setup
│ │ ├── oil.lua # File explorer (Oil.nvim)
│ │ ├── visual_multi.lua # Multi-cursor support
│ │ ├── mason.lua # LSP installer manager
│ │ ├── lualine.lua # Statusline setup
│ │ ├── comment.lua # Easy Commenting
│ ├── vim-options.lua # General Neovim settings
│ ├── plugins.lua # Plugin pointer file
This setup is plugin-based, meaning all configurations are modular and installed through Lazy.nvim.
- Lazy.nvim – Plugin manager.
- Which-Key.nvim – Keybinding popup (default OFF, toggle with
Ctrl + W). - Mason.nvim – LSP installer.
- LSPConfig – Language Server Protocol setup.
- Treesitter – Advanced syntax highlighting.
- Telescope.nvim – Fuzzy finder (Find files, live grep, etc.)
- Oil.nvim – File explorer (Replaces netrw, mapped to
Ctrl + O).
- Lualine.nvim – Customizable statusline.
- Alpha.nvim – Neovim dashboard (Mapped to
Ctrl + A). - OneDark.nvim – Default colorscheme.
- vim-visual-multi – Multi-cursor support (
<C-n>to select next match). - Telescope-ui-select.nvim – Better UI selection for commands.
- Comment.nvim – Allows for keycommand commenting.
This setup includes custom keybindings, managed by which-key.nvim.
| Key | Action |
|---|---|
Ctrl + o |
Open Oil.nvim (File Explorer) |
Ctrl + CR |
Change to current directory (Oil) |
<leader>fg |
Live Grep (Telescope) |
<leader>fb |
Find Buffers (Telescope) |
<leader>m |
Open Mason (LSP Installer) |
<leader>ts |
Update Treesitter Parsers |
K |
Hover Info (LSP) |
gd |
Go to Definition (LSP) |
<leader>rn |
Rename Symbol (LSP) |
Ctrl + a |
Open Alpha Dashboard |
Ctrl + w |
Toggle Which-Key (ON/OFF) |
Ctrl + j |
Add Cursor Below |
Ctrl + k |
Add Cursor Above |
Ctrl + n |
Select next match (Visual Multi) |
Ctrl + / |
Comment toggle |
To install this Neovim setup, follow these steps:
-
Install Neovim (if not installed):
sudo apt install neovim # Ubuntu/Debian brew install neovim # macOS winget install neovim # Windows
-
Clone this repository to ~/.config/nvim:
git clone https://github.com/DCPR01/nvim.git ~/.config/nvim -
Open Neovim and install plugins:
nvim :Lazy sync
-
Restart Neovim and enjoy! 🚀
- Modify plugin configurations inside
lua/plugins/. - Add custom keybindings to
plugin_keys.lua. - Change the colorscheme inside
lua/options.lua.
If something isn't working as expected:
Check the path Neovim is referencing for its config: :echo stdpath("config")
-
Update all plugins:
nvim :Lazy update
-
Check for errors in logs:
:checkhealth
-
If which-key.nvim doesn’t show mappings:
- Make sure you toggle it ON with
Ctrl + W. - Run
:WhichKeyto confirm mappings.
- Make sure you toggle it ON with
-
If LSPs don’t work:
:LspInfo
- Ensure Mason installed the correct LSPs.
-
Remove broken plugins and reinstall:
rm -rf ~/.local/share/nvim/lazy nvim :Lazy sync
- 🔥 Fast & Minimal: Uses Lazy.nvim for optimized performance.
- 🛠 Modular: Easy to extend and modify.
- 🔄 Pre-configured Plugins: Includes everything needed for a smooth experience.
- ⌨ Fully Keymapped: Designed for efficient navigation and coding.
🚀 Enjoy coding with Neovim! Let me know if you need help! 🎯