Pre-Configured Plugins
LazyVim comes with a curated set of plugins organized into categories. Below is each plugin, its purpose, and key configuration defaults.
Coding Plugins
mini.pairs
Auto-closes brackets, quotes, and parentheses as you type.
opts = {
modes = { insert = true, command = true, terminal = false },
skip_ts = { "string" }, -- Don't autopair inside strings
skip_unbalanced = true, -- Skip if more closing than opening
markdown = true, -- Better markdown code blocks
}
ts-comments.nvim
Improves comment syntax — handles multiple comment types per language and relaxes uncomment rules.
opts = {}
mini.ai
Extends a and i text objects with intelligent selection:
| Key | Text Object |
|---|---|
ao / io | Code block (if/for/while) |
af / if | Function |
ac / ic | Class |
at / it | HTML/XML tag |
ad / id | Digits |
ae / ie | Word with case |
ag / ig | Buffer |
au / iu | Function call |
lazydev.nvim
Configures LuaLS to provide auto-completion and type checking for Neovim config files (LazyVim, Snacks, lazy.nvim, etc.).
opts = {
library = {
{ path = "${3rd}/luv/library", words = { "vim%.uv" } },
{ path = "LazyVim", words = { "LazyVim" } },
{ path = "snacks.nvim", words = { "Snacks" } },
{ path = "lazy.nvim", words = { "LazyVim" } },
{ path = "nvim-lspconfig", words = { "lspconfig.settings" } },
},
}
Editor Plugins
grug-far.nvim
Search and replace across multiple files with a dedicated UI.
| Keymap | Action |
|---|---|
<leader>sr | Search and Replace (n/x) |
flash.nvim
Enhanced search — labels appear at matches so you can jump precisely.
| Keymap | Action |
|---|---|
s | Flash jump (n/x/o) |
S | Flash Treesitter (n/o/x) |
r | Remote Flash (o) |
R | Treesitter Search (o/x) |
<c-s> | Toggle Flash search (c) |
<c-space> | Treesitter incremental selection (n/o/x) |
which-key.nvim
Shows a popup of available keybindings when you press <space> or any prefix key.
Groups defined for <leader>:
<leader><tab>— tabs<leader>b— buffer (dynamic: shows open buffers)<leader>c— code<leader>d— debug<leader>dp— profiler<leader>f— file/find<leader>g— git<leader>gh— hunks<leader>q— quit/session<leader>s— search<leader>u— ui<leader>w— windows (dynamic)<leader>x— diagnostics/quickfix[— prev]— nextg— gotogs— surroundz— fold
| Keymap | Action |
|---|---|
<leader>? | Buffer keymaps (which-key) |
<c-w><space> | Window hydra mode |
gitsigns.nvim
Shows git change indicators in the sign column and provides hunk operations.
| Sign | Meaning |
|---|---|
▎ (green) | Added line |
▎ (blue) | Changed line |
(red) | Deleted line |
▎ (gray) | Untracked |
See LazyVim Cheatsheet for all gitsigns keymaps.
trouble.nvim
Enhanced diagnostics/quickfix/loclist viewer in a side panel.
| Keymap | Action |
|---|---|
<leader>xx | Diagnostics (Trouble) |
<leader>xX | Buffer Diagnostics |
<leader>cs | Symbols (Trouble) |
<leader>cS | LSP references/definitions |
<leader>xL | Location List |
<leader>xQ | Quickfix List |
[q / ]q | Previous / Next item |
todo-comments.nvim
Highlights and lists TODO, FIX, HACK, BUG, NOTE comments.
| Keymap | Action |
|---|---|
<leader>st | Todo (Telescope) |
<leader>sT | Todo/Fix/Fixme (Telescope) |
<leader>xt | Todo (Trouble) |
<leader>xT | Todo/Fix/Fixme (Trouble) |
]t | Next Todo Comment |
[t | Previous Todo Comment |
UI Plugins
bufferline.nvim
Tab bar showing open buffers with filetype icons, diagnostics, and close buttons.
| Keymap | Action |
|---|---|
<S-h> | Previous buffer |
<S-l> | Next buffer |
[b / ]b | Previous/Next buffer |
[B / ]B | Move buffer prev/next |
<leader>bp | Toggle pin |
<leader>bP | Delete non-pinned |
<leader>bl | Delete buffers to the left |
<leader>br | Delete buffers to the right |
<leader>bj | Pick buffer |
lualine.nvim
Customizable statusline with sections for mode, branch, diagnostics, file path, diff, and more.
Sections:
lualine_a— Modelualine_b— Git branchlualine_c— Root dir, diagnostics, filetype icon, pretty pathlualine_x— Profiler, Noice status, DAP status, Lazy updates, difflualine_y— Progress, locationlualine_z— Clock
noice.nvim
Replaces the default UI for messages, cmdline, and popupmenu with a modern, more informative interface.
| Keymap | Action |
|---|---|
<S-Enter> | Redirect cmdline |
<leader>snl | Noice Last Message |
<leader>snh | Noice History |
<leader>sna | Noice All |
<leader>snd | Dismiss All |
<leader>snt | Noice Picker |
<c-f> / <c-b> | Scroll forward/backward |
mini.icons
Provides filetype and file icons. Mocks nvim-web-devicons API for compatibility.
snacks.nvim (UI parts)
Provides indent guides, notifications, smooth scrolling, dashboard, input UI, and word highlighting.
| Keymap | Action |
|---|---|
<leader>n | Notification History |
<leader>un | Dismiss All Notifications |
Dashboard (snacks.nvim): Shows on startup with quick actions:
| Key | Action |
|---|---|
f | Find Files |
n | New File |
g | Find Text |
r | Recent Files |
c | Config |
s | Restore Session |
x | Lazy Extras |
l | Lazy |
q | Quit |
LSP Plugins
nvim-lspconfig
Configures LSP clients. Keymaps are set per server or globally via servers['*'].
Global LSP keymaps:
| Keymap | Action |
|---|---|
gd | Go to Definition |
gr | References |
gI | Go to Implementation |
gy | Go to Type Definition |
gD | Go to Declaration |
K | Hover documentation |
gK / <c-k> | Signature Help |
<leader>ca | Code Action |
<leader>cc | Run Codelens |
<leader>cr | Rename |
<leader>cl | LSP Info |
<leader>co | Organize Imports |
<leader>cA | Source Action |
]] / [[ | Next/Prev Reference |
<a-n> / <a-p> | Next/Prev Reference |
mason.nvim
Installs LSP servers, linters, formatters, and DAP adapters. Opens :Mason UI.
opts = {
ensure_installed = { "stylua", "shfmt" },
}
mason-lspconfig.nvim
Bridge between Mason and lspconfig. Auto-installs and configures LSP servers.
Treesitter Plugins
nvim-treesitter
Better syntax highlighting, indentation, and folding using Treesitter parsers.
Installed parsers by default: bash, c, diff, html, javascript, jsdoc, json, lua, luadoc, markdown, python, query, regex, toml, tsx, typescript, vim, vimdoc, xml, yaml
nvim-treesitter-textobjects
Navigates by functions, classes, and parameters using Treesitter.
| Keymap | Action |
|---|---|
]f | Next function start |
[f | Previous function start |
]F | Next function end |
[F | Previous function end |
]c | Next class start |
[c | Previous class start |
]C | Next class end |
[C | Previous class end |
]a | Next parameter |
[a | Previous parameter |
nvim-ts-autotag
Auto-closes HTML/JSX/XML tags.
Formatting Plugin
conform.nvim
Format-on-save with configurable formatters per filetype.
opts = {
default_format_opts = { timeout_ms = 3000, lsp_format = "fallback" },
formatters_by_ft = {
lua = { "stylua" },
fish = { "fish_indent" },
sh = { "shfmt" },
},
}
| Keymap | Action |
|---|---|
<leader>cf | Format buffer |
<leader>cF | Format injected languages |
Linting Plugin
nvim-lint
Async linter that reports results via vim.diagnostic.
opts = {
events = { "BufWritePost", "BufReadPost", "InsertLeave" },
linters_by_ft = {
fish = { "fish" },
},
}
Util Plugins
snacks.nvim (Util parts)
| Component | Purpose |
|---|---|
| bigfile | Optimizes editing for large files |
| quickfile | Tracks recently opened files |
| terminal | Floating/bottom terminal with window navigation |
| Keymap | Action |
|---|---|
<leader>. | Toggle Scratch Buffer |
<leader>S | Select Scratch Buffer |
<leader>dps | Profiler Scratch Buffer |
<leader>fT | Terminal (cwd) |
<leader>ft | Terminal (Root Dir) |
<c-/> | Toggle Terminal (Root Dir) |
persistence.nvim
Automatic session management — saves/restores buffers, windows, and tabs.
| Keymap | Action |
|---|---|
<leader>qs | Restore Session |
<leader>qS | Select Session |
<leader>ql | Restore Last Session |
<leader>qd | Don't Save Current Session |
plenary.nvim
Utility library used by Telescope and other plugins. Not directly interacted with.
Related
- Configuration
- Extras — add more plugins via LazyVim extras
- LazyVim Cheatsheet