A modern, modular, and fast Neovim configuration built from scratch with lazy.nvim. This setup provides a complete IDE-like experience, focusing on performance, aesthetics, and modern developer tooling.
| Gruvbox Material | GitHub Dark Theme |
|---|---|
| Which-key Hinting | Transparent Mode |
- ⚡ Fast & Lazy-Loaded: Built with
lazy.nvimto ensure minimal startup time. Plugins are loaded only when needed. - 🛠️ Modern Tooling: Out-of-the-box support for LSP, formatting, linting, and debugging.
- LSP Management via
mason.nvimfor easy installation of language servers. - Formatting via
conform.nvim, configured for format-on-save. - Linting via
nvim-lintfor asynchronous, on-the-fly code checking. - Debugging via
nvim-dapandnvim-dap-ui.
- LSP Management via
- 💅 Beautiful & Functional UI:
- Statusline: Sleek and informative statusline from
lualine.nvim. - Buffer Tabs:
bufferline.nvimprovides a clean tab interface. - File Explorer: Modern file tree with
neo-tree.nvim. - Key Hints:
which-key.nvimprovides helpful popups for keybindings. - Command UI:
noice.nvimbeautifies the command line and notifications. - Themes: Easy theme cycling with support for
gruvbox-material,github_dark,everforest, and more.
- Statusline: Sleek and informative statusline from
- 📝 Rich Editing Experience:
- Fuzzy Finding:
telescope.nvimfor finding files, text, buffers, and more. - Completion:
nvim-cmpprovides powerful autocompletion. - Syntax Highlighting: Advanced highlighting with
nvim-treesitter. - Git Integration:
gitsigns.nvimfor hunk management and line blame. - Diagnostics:
trouble.nvimfor a clean list of project-wide diagnostics. - Navigation:
hop.nvimandaccelerated-jk.nvimfor rapid cursor movement. - Commenting: Smart, context-aware commenting with
Comment.nvim.
- Fuzzy Finding:
-
Backup your existing configuration:
# Make a backup of your current nvim config mv ~/.config/nvim ~/.config/nvim.bak mv ~/.local/share/nvim ~/.local/share/nvim.bak
-
Clone the repository:
git clone [https://github.com/jrychn/modulevim.git](https://github.com/jrychn/modulevim.git) ~/.config/nvim -
Start Neovim:
nvim
On the first launch,
lazy.nvimwill automatically bootstrap itself and install all the plugins.
This configuration uses <Space> as the leader key. which-key.nvim will guide you, but here are some of the most important bindings:
| Key | Action | Plugin |
|---|---|---|
<Space> |
Leader key / Open which-key |
which-key.nvim |
<C-\> |
Toggle floating terminal | toggleterm.nvim |
<leader>e |
Toggle file explorer | neo-tree.nvim |
<leader>o |
Toggle symbols outline | aerial.nvim |
<leader>aa |
Show welcome screen | alpha-nvim |
| Key | Action |
|---|---|
<leader>ff |
Find Files |
<leader>fg |
Live Grep (Search Text) |
<leader>fb |
Find Buffers |
<leader>fh |
Find Help Tags |
gr |
LSP References |
gi |
LSP Implementations |
| Key | Action | Plugin |
|---|---|---|
<leader>bd |
Close current buffer | mini.bufremove |
<S-l> |
Next buffer | bufferline.nvim |
<S-h> |
Previous buffer | bufferline.nvim |
<leader>tc |
Cycle color theme | (custom) |
<leader>tp |
Toggle transparent background | transparent.nvim |
| Key | Action |
|---|---|
gd |
Go to Definition |
gD |
Go to Declaration |
K |
Hover Documentation |
gh |
Hover Documentation (alias) |
<leader>ca |
Code Action |
<leader>rn |
Rename Symbol |
[d |
Go to Previous Diagnostic |
]d |
Go to Next Diagnostic |
<leader>xx |
Toggle diagnostics list |
<leader>ll |
Toggle document diagnostics |
<leader>lq |
Toggle quickfix list |
| Key | Action |
|---|---|
<F5> |
Continue |
<F10> |
Step Over |
<F11> |
Step Into |
<F12> |
Step Out |
<leader>db |
Toggle Breakpoint |
<leader>du |
Toggle DAP UI |
This is not a complete list, but highlights the main plugins used in this configuration.
| Function | Plugin |
|---|---|
| Plugin Manager | folke/lazy.nvim |
| Fuzzy Finder | nvim-telescope/telescope.nvim |
| LSP Management | williamboman/mason.nvim |
| LSP Config | neovim/nvim-lspconfig |
| Formatting | stevearc/conform.nvim |
| Linting | mfussenegger/nvim-lint |
| Completion | hrsh7th/nvim-cmp |
| Statusline | nvim-lualine/lualine.nvim |
| Tab/Buffer Line | akinsho/bufferline.nvim |
| File Tree | nvim-neo-tree/neo-tree.nvim |
| Keymap Hints | folke/which-key.nvim |
| Welcome Screen | goolord/alpha-nvim |
| Git Signs | lewis6991/gitsigns.nvim |
| Diagnostics UI | folke/trouble.nvim |
| Code Outline | stevearc/aerial.nvim |
| Terminal | akinsho/toggleterm.nvim |
| Debugging | mfussenegger/nvim-dap |