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 |
lazy.nvim to ensure minimal startup time. Plugins are loaded only when needed.mason.nvim for easy installation of language servers.conform.nvim, configured for format-on-save.nvim-lint for asynchronous, on-the-fly code checking.nvim-dap and nvim-dap-ui.lualine.nvim.bufferline.nvim provides a clean tab interface.neo-tree.nvim.which-key.nvim provides helpful popups for keybindings.noice.nvim beautifies the command line and notifications.gruvbox-material, github_dark, everforest, and more.telescope.nvim for finding files, text, buffers, and more.nvim-cmp provides powerful autocompletion.nvim-treesitter.gitsigns.nvim for hunk management and line blame.trouble.nvim for a clean list of project-wide diagnostics.hop.nvim and accelerated-jk.nvim for rapid cursor movement.Comment.nvim.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.nvim will 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 |