Skip to main content

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:

KeyText Object
ao / ioCode block (if/for/while)
af / ifFunction
ac / icClass
at / itHTML/XML tag
ad / idDigits
ae / ieWord with case
ag / igBuffer
au / iuFunction 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.

KeymapAction
<leader>srSearch and Replace (n/x)

flash.nvim

Enhanced search — labels appear at matches so you can jump precisely.

KeymapAction
sFlash jump (n/x/o)
SFlash Treesitter (n/o/x)
rRemote Flash (o)
RTreesitter 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
  • ] — next
  • g — goto
  • gs — surround
  • z — fold
KeymapAction
<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.

SignMeaning
(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.

KeymapAction
<leader>xxDiagnostics (Trouble)
<leader>xXBuffer Diagnostics
<leader>csSymbols (Trouble)
<leader>cSLSP references/definitions
<leader>xLLocation List
<leader>xQQuickfix List
[q / ]qPrevious / Next item

todo-comments.nvim

Highlights and lists TODO, FIX, HACK, BUG, NOTE comments.

KeymapAction
<leader>stTodo (Telescope)
<leader>sTTodo/Fix/Fixme (Telescope)
<leader>xtTodo (Trouble)
<leader>xTTodo/Fix/Fixme (Trouble)
]tNext Todo Comment
[tPrevious Todo Comment

UI Plugins

bufferline.nvim

Tab bar showing open buffers with filetype icons, diagnostics, and close buttons.

KeymapAction
<S-h>Previous buffer
<S-l>Next buffer
[b / ]bPrevious/Next buffer
[B / ]BMove buffer prev/next
<leader>bpToggle pin
<leader>bPDelete non-pinned
<leader>blDelete buffers to the left
<leader>brDelete buffers to the right
<leader>bjPick buffer

lualine.nvim

Customizable statusline with sections for mode, branch, diagnostics, file path, diff, and more.

Sections:

  • lualine_a — Mode
  • lualine_b — Git branch
  • lualine_c — Root dir, diagnostics, filetype icon, pretty path
  • lualine_x — Profiler, Noice status, DAP status, Lazy updates, diff
  • lualine_y — Progress, location
  • lualine_z — Clock

noice.nvim

Replaces the default UI for messages, cmdline, and popupmenu with a modern, more informative interface.

KeymapAction
<S-Enter>Redirect cmdline
<leader>snlNoice Last Message
<leader>snhNoice History
<leader>snaNoice All
<leader>sndDismiss All
<leader>sntNoice 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.

KeymapAction
<leader>nNotification History
<leader>unDismiss All Notifications

Dashboard (snacks.nvim): Shows on startup with quick actions:

KeyAction
fFind Files
nNew File
gFind Text
rRecent Files
cConfig
sRestore Session
xLazy Extras
lLazy
qQuit

LSP Plugins

nvim-lspconfig

Configures LSP clients. Keymaps are set per server or globally via servers['*'].

Global LSP keymaps:

KeymapAction
gdGo to Definition
grReferences
gIGo to Implementation
gyGo to Type Definition
gDGo to Declaration
KHover documentation
gK / <c-k>Signature Help
<leader>caCode Action
<leader>ccRun Codelens
<leader>crRename
<leader>clLSP Info
<leader>coOrganize Imports
<leader>cASource 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.

KeymapAction
]fNext function start
[fPrevious function start
]FNext function end
[FPrevious function end
]cNext class start
[cPrevious class start
]CNext class end
[CPrevious class end
]aNext parameter
[aPrevious 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" },
},
}
KeymapAction
<leader>cfFormat buffer
<leader>cFFormat 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)

ComponentPurpose
bigfileOptimizes editing for large files
quickfileTracks recently opened files
terminalFloating/bottom terminal with window navigation
KeymapAction
<leader>.Toggle Scratch Buffer
<leader>SSelect Scratch Buffer
<leader>dpsProfiler Scratch Buffer
<leader>fTTerminal (cwd)
<leader>ftTerminal (Root Dir)
<c-/>Toggle Terminal (Root Dir)

persistence.nvim

Automatic session management — saves/restores buffers, windows, and tabs.

KeymapAction
<leader>qsRestore Session
<leader>qSSelect Session
<leader>qlRestore Last Session
<leader>qdDon't Save Current Session

plenary.nvim

Utility library used by Telescope and other plugins. Not directly interacted with.