Neovim#
Neovim is a Vim-fork rewrite that started in 2014, with goals of cleaner code, embedding into other applications, asynchronous I/O, and a more pleasant configuration language.
In 2026, Neovim is where most modern Vim-style development happens.
What’s Different from Vim#
The differences add up to “Vim with the awkward bits replaced.” Lua in place of Vimscript, LSP and Tree-sitter built in instead of bolted on, async I/O so plugins do not block the editor, and an embeddable core that lets other tools host Neovim as their modal layer:
Lua as a first-class config language,
init.luainstead of.vimrc(both are supported).Built-in LSP client, no plugin needed for language-server features.
Built-in Tree-sitter, syntax-aware highlighting and editing.
Asynchronous job control built in.
Modern terminal features, true color, undercurl, embedded terminal.
Embeddable, VS Code, IntelliJ, Cursor, and others embed Neovim for modal editing.
Files#
Neovim follows the XDG layout under ~/.config/nvim/. init.lua
is the modern entry point; init.vim still works for users coming
from Vim. Most configs split the work into small Lua modules under
lua/ rather than one monolithic file:
~/.config/nvim/init.lua, the modern entry point.~/.config/nvim/lua/, modules, by convention.~/.config/nvim/init.vim, legacy Vimscript support.
Most config is split into small Lua files: options.lua,
keymaps.lua, plugins.lua, lsp.lua.
Plugin Managers#
Plugin managers handle the install / update / lazy-load loop. In
2026 the field has consolidated around lazy.nvim, which is what
the popular distributions ship with; the others remain available
but mostly serve specific niches:
lazy.nvim, the default in 2026; lazy-loads plugins for fast startup.
packer.nvim, previous default; less actively maintained.
paq-nvim, minimal.
mini.deps, part of the
mini.nvimecosystem.
The Standard Stack#
A typical 2026 Neovim setup. These plugins do most of the work that an IDE handles natively (LSP, completion, fuzzy find, file explorer, status bar, git integration, AI assistance) and a distribution like LazyVim wires them all together for users who do not want to assemble the stack themselves:
Plugin manager: lazy.nvim.
LSP: built-in client +
nvim-lspconfigfor server configurations.Completion:
nvim-cmporblink.cmp.Tree-sitter:
nvim-treesitter.Fuzzy finder:
telescope.nvim(orfzf-lua).File explorer:
oil.nvim(edit-as-buffer) ornvim-tree.Status line:
lualine.nvim.Git:
gitsigns.nvimandvim-fugitive.Linting / formatting:
conform.nvim,nvim-lint.Diagnostics view:
trouble.nvim.AI:
codecompanion.nvim,avante.nvim, orcopilot.lua.
Distributions#
Pre-configured Neovim setups for users who don’t want to start from scratch:
LazyVim, the popular default; built on lazy.nvim.
LunarVim, another popular config.
AstroNvim, batteries-included.
NvChad, minimal default UI, fast.
kickstart.nvim, a single
init.luayou read and customize.
For learning, kickstart.nvim is the best starting point. For “just works”, LazyVim.
Strengths#
What Neovim does better than the rest of the modal-editor field. Most of the gains come from clean engineering decisions made upfront (async, Lua, embeddable) that the pre-fork Vim codebase could not retrofit.
Modern config language, Lua is far easier than Vimscript.
Built-in LSP and Tree-sitter, no setup ceremony.
Faster startup than Vim with comparable feature sets.
Active plugin ecosystem, many of the best modern Vim-style plugins are Neovim-only.
Embeddable, the same config works inside VS Code’s vim emulation, IntelliJ, Zed, etc.
Weaknesses#
The cost of being a fast-moving plugin-driven editor. A clean config takes a real time investment, the ecosystem churns, and unlike Vim you cannot count on Neovim being on every host you need to edit a file on.
Plugin setup time, a fresh config takes effort; distributions exist for that reason.
Plugin sprawl, the ecosystem moves fast; abandoned plugins are common.
Not on every server, you’ll fall back to Vim on minimal systems.
When to Pick Neovim#
Pick Neovim when modal editing is your daily driver and you want the modern feature set without paying for it in plugin glue. For someone learning modal editing today, Helix is a lower-effort on-ramp; for everyone else, Neovim is the default.
Modal editing as your daily driver.
You want LSP / Tree-sitter / async without plugin headaches.
You enjoy customization and don’t mind Lua.
If you want modal editing without the configuration hill, see Helix.