Neovim Plugin Atlas
Up: Neovim Config Tutorial Down: editor, UI, colorschemes, LSP completion, Git, Treesitter, tools, languages, notes, debug test data, AI
This atlas names every plugin in the lockfile-level ecosystem and says why it belongs. Some are main tools. Some are quiet dependencies. A good workbench needs both chisels and screws.
Core
| Plugin | Why it is here |
|---|---|
lazy.nvim | Loads the workshop in categories and keeps plugin state reproducible. |
plenary.nvim | Provides Lua utility plumbing used by Telescope, tests, reload helpers, and many plugins. |
direnv.vim | Lets the editor inhale the project environment, which is essential for devenv and devShell workflows. |
Editing
| Plugin | Why it is here |
|---|---|
mini.ai | Adds smarter text objects so edits target ideas, not just punctuation. |
mini.sessions | Saves and restores project sessions without making sessions automatic or spooky. |
mini.bracketed | Makes bracket navigation a regular street grid for buffers, diagnostics, files, and quickfix entries. |
undotree | Shows undo history as a timeline for older Neovim versions. |
nvim-surround | Changes quotes, tags, brackets, and wrappers with fewer keystrokes. |
dial.nvim | Turns increment and decrement into a semantic crank for numbers, dates, booleans, and words. |
oil.nvim | Treats directories as editable buffers, making file operations feel like normal text editing. |
oil-git.nvim | Adds Git awareness to Oil so the file cabinet knows what changed. |
grug-far.nvim | Gives project-wide search and replace a deliberate command surface. |
which-key.nvim | Makes the keymap discoverable, especially the large leader-key vocabulary. |
gx.nvim | Opens URLs and file references without relying on netrw. |
Interface
| Plugin | Why it is here |
|---|---|
snacks.nvim | Provides a dashboard, notifier, scratch buffers, word helpers, and zen mode without taking over every UI surface. |
nvim-colorizer.lua | Shows color values as color chips, which matters in themes and frontend work. |
nvim-web-devicons | Gives filetypes recognizable glyphs in statuslines, pickers, and buffers. |
indent-blankline.nvim | Draws indentation rails so nested structure is visible at a glance. |
lualine.nvim | Turns the statusline into an instrument panel for Git, LSP, linting, tasks, packages, R, AI, and mode state. |
copilot-lualine | Adds Copilot status to the instrument panel when Copilot is enabled. |
barbar.nvim | Provides a visible buffer row for open-file navigation. |
rainbow-delimiters.nvim | Colors nested parentheses and delimiters so structure has depth. |
dressing.nvim | Improves vim.ui.select and vim.ui.input prompts used by other plugins. |
noice.nvim | Routes messages, command-line UI, and notifications through a calmer interface. |
nui.nvim | Supplies UI primitives used by Noice, DAP UI, and AI interfaces. |
todo-comments.nvim | Turns TODO, FIXME, and similar markers into navigable work items. |
render-markdown.nvim | Makes Markdown, org, norg, R Markdown, and AI buffers read like documents inside Neovim. |
live-preview.nvim | Opens a browser preview for markup work when static rendering is not enough. |
Colors
| Plugin | Why it is here |
|---|---|
catppuccin | Current soft default, good for long editing sessions. |
tokyonight.nvim | A crisp dark palette for high-contrast coding. |
kanagawa.nvim | A warmer, ink-like palette. |
rose-pine | A muted palette for prose and slower work. |
everforest-nvim | A green, low-glare fallback loaded early. |
LSP, Completion, Format, And Lint
| Plugin | Why it is here |
|---|---|
nvim-lspconfig | Provides Neovim’s LSP wiring and server configuration substrate. |
mason.nvim | Non-Nix Linux convenience UI for installing tools. Disabled on NixOS. |
mason-lspconfig.nvim | Bridges Mason and LSP config on non-Nix systems. Disabled on NixOS. |
lspsaga.nvim | Gives LSP actions, finder, outline, and diagnostic movement a richer interface. |
colorful-menu.nvim | Makes completion labels easier to scan. |
lazydev.nvim | Teaches Lua buffers about Neovim’s runtime APIs. |
tsc.nvim | Runs TypeScript compiler diagnostics as a separate, project-scale signal. |
ts-error-translator.nvim | Turns dense TypeScript errors into friendlier explanations. |
conform.nvim | Coordinates formatters with LSP fallback and per-filetype rules. |
nvim-lint | Runs linters on write and text changes without mixing linting into formatting. |
SchemaStore.nvim | Supplies JSON and YAML schemas. |
blink.cmp | Main completion engine, fast enough to be the cockpit. |
blink.compat | Lets older cmp-style sources speak to Blink. |
friendly-snippets | Provides broad community snippets. |
blink-ripgrep.nvim | Completes from project text, turning the repository itself into memory. |
blink-cmp-git | Completes GitHub and Git context in commits and issue workflows. |
cmp-nvim-lua | Completes Neovim Lua APIs through compatibility wiring. |
blink-calc | Evaluates simple calculations from completion. |
cmp-emoji | Adds emoji completion where prose or issue text wants it. |
lspkind.nvim | Adds kind icons to completion entries. |
cmp-dap | Adds debugger-aware completion inside DAP buffers. |
ecolog.nvim | Lets env-file keys be searched, peeked, and inserted without publishing values. |
Git
| Plugin | Why it is here |
|---|---|
gitsigns.nvim | Shows hunk signs and provides hunk motions, blame, diff, reset, and stage actions. |
neogit | Brings a Magit-like Git command center into Neovim. |
diffview.nvim | Gives file, branch, history, and stash diffs a dedicated layout. |
octo.nvim | Handles GitHub issues and pull requests from the editor. |
Treesitter
| Plugin | Why it is here |
|---|---|
nvim-treesitter | Provides syntax trees for highlighting, text objects, comments, pairs, and language-aware behavior. |
nvim-dap-repl-highlights | Highlights debugger REPL buffers with Treesitter. |
nvim-ts-autotag | Closes and renames tags in markup-heavy languages. |
ts-comments.nvim | Makes comments language-aware through Treesitter. |
nvim-autopairs | Inserts matching delimiters without getting in the way. |
vim-matchup | Improves % matching and structural movement on older Neovim versions. |
Search, Projects, Tasks, And Terminals
| Plugin | Why it is here |
|---|---|
telescope.nvim | Main search lens for files, grep, Git, help, marks, registers, and plugin pickers. |
telescope-fzf-native.nvim | Makes Telescope fuzzy matching faster and sharper. |
project.nvim | Detects project roots so search, LSP, and task commands know the current room. |
trouble.nvim | Turns diagnostics, quickfix, and references into readable issue lists. |
harpoon | Keeps a hand-picked ring of files close, separate from fuzzy search. |
overseer.nvim | Runs and tracks tasks inside Neovim. |
toggleterm.nvim | Provides project terminals, lazygit, btop, VisiData, and domain-specific REPL launchers. |
nvim-bqf | Makes quickfix windows previewable and easier to navigate. |
kulala.nvim | Runs REST and HTTP requests from .http and .rest files. |
Languages And Domains
| Plugin | Why it is here |
|---|---|
scnvim | Turns Neovim into a SuperCollider control room. |
vim-tidal | Retained as a parked older Tidal option, currently disabled. |
tidal.nvim | Active TidalCycles integration with SuperDirt boot flow. |
sonicpi.nvim | Adds Sonic Pi editing, commands, and LSP integration. |
R.nvim | Connects R and R Markdown editing to an interactive R session. |
salt-vim | Adds SaltStack syntax when Salt work is enabled. |
Vim-Jinja2-Syntax | Improves Jinja templates, especially around infrastructure files. |
vimtex | Gives LaTeX compilation, viewing, motions, text objects, and diagnostics. |
typst-preview.nvim | Previews Typst documents. |
ledger.nvim | Adds ledger and hledger writing support. |
package-info.nvim | Shows package dependency freshness in JavaScript projects. |
neogen | Generates doc comments from code structure. |
refactoring.nvim | Provides extract, inline, and refactor flows with Telescope integration. |
Notes And Knowledge
| Plugin | Why it is here |
|---|---|
obsidian.nvim | Connects Neovim to Markdown vault work: dailies, templates, backlinks, links, tags, and note creation. |
orgmode | Adds org agenda, capture, tasks, and structured planning. |
org-modern.nvim | Makes org buffers easier to read. |
Debug, Test, Data, And Notebooks
| Plugin | Why it is here |
|---|---|
nvim-dap | Core Debug Adapter Protocol client. |
nvim-dap-virtual-text | Shows debugger values inline and near code. |
nvim-dap-python | Adds Python debugger helpers. |
telescope-dap.nvim | Lets Telescope browse DAP commands and state. |
nvim-dap-ui | Provides debugger panes for scopes, stacks, watches, and REPLs. |
nvim-nio | Async dependency used by DAP UI and test tooling. |
one-small-step-for-vimkind | Lua debugging option, intentionally parked disabled. |
mason-nvim-dap.nvim | Non-Nix Linux helper for debugger adapters. Disabled on NixOS. |
neotest | Main test runner interface. |
neotest-python | Python adapter for Neotest. |
neotest-testthat | R testthat adapter for Neotest. |
neotest-vitest | Vitest adapter for Neotest. |
neotest-jest | Jest adapter for Neotest. |
neotest-playwright | Playwright adapter for Neotest. |
jupynium.nvim | Jupyter notebook bridge for Python-heavy notebook workflows. |
vim-dadbod | Database query engine inside Neovim. |
vim-dadbod-ui | Database browser and query UI. |
vim-dadbod-completion | SQL completion for database buffers. |
AI And Agents
| Plugin | Why it is here |
|---|---|
copilot.lua | Inline AI suggestions when Node is new enough and the feature is enabled. |
codeium.vim | Alternative inline assistant, currently feature-gated off. |
supermaven-nvim | Another inline assistant option, currently feature-gated off. |
avante.nvim | Larger AI edit/chat workspace for code changes. |
sidekick.nvim | Tmux-backed CLI agent bridge for prompts, selections, files, and next-edit suggestions. |
Related: platforms, LSP architecture