What Features Does Neovim Add Compared to Vim?

Updated

Neovim keeps Vim's editing model and Vimscript v1 compatibility, then adds a set of capabilities that Vim does not ship by default: a built-in Lua runtime, an RPC layer that lets other programs embed or drive the editor, Tree-sitter parsing, a built-in LSP client, multicursor, and a built-in :terminal. If you already use Vim, the project points you to :help nvim-from-vim; if you are new, :Tutor is the starting point. The additions below are the ones that change what you can build and configure, not just cosmetic differences.

Extensibility: Lua, RPC, and a discoverable API

The most structural difference is how extensions are written and how the editor is controlled from outside.

  • Lua is built in. Your configuration lives in init.lua, and you can create Lua plugins without an external runtime. Vimscript is not deprecated — Neovim describes its Vimscript engine as the most advanced one, and Lua sits alongside it rather than replacing it.
  • The API is discoverable, versioned, and documented. Instead of relying on undocumented internals, plugin authors work against a defined surface.
  • Ubiquitous RPC enables extensions in any language. GUIs, IDEs, and web browsers can run nvim --embed to use Neovim as an editor or as a script host. This is what makes Neovim embeddable in a way Vim is not.
  • Repeat anything with CmdAtom. Commands and mappings can be replayed as a unit.

The practical consequence: if you want to write tooling around your editor — a custom UI, an IDE integration, a script in a language other than Vimscript — Neovim exposes that path directly. Vim's extension story is centered on Vimscript inside the editor.

Editing and language features

These are the day-to-day features that show up while you type.

Feature What it does
Tree-sitter parsing Accurate syntax highlighting, text-objects, and more, based on a real parse tree rather than regexes
LSP Semantic code inspection and refactoring
Multicursor Instantly replays commands and mappings on a set of marks
Multiplexing :connect, :detach, :restart — described as like tmux, but works everywhere
Built-in :terminal Set the standard for "TTY as a basic component"

Tree-sitter and LSP are the two that most change editing behavior: highlighting and text objects follow the actual grammar of the file, and code inspection/refactoring comes from a language server rather than from editor-specific plugins.

Usability and terminal defaults

Neovim ships defaults that Vim users typically configure by hand:

  • Strong defaults, including a unique, minimalist colorscheme.
  • No "Press ENTER" messages (ui2).
  • One build-type, one command — it works the same everywhere.
  • Modern terminal features enabled by default: progress bar, cursor styling, focus events, bracketed paste, and similar.

Compatibility and project status

  • Drop-in Vim: fully compatible with Vim's editing model and Vimscript v1. Vim 8.x plugins are supported.
  • Not an IDE takeover: Neovim has about 30% less source code than Vim, and its stated vision is to enable new applications without compromising Vim's traditional roles.
  • Current stable release is 0.12 (with an RSS feed for releases); Neovim 0.11 was released 2025.03, and Google Summer of Code 2026 is listed in the news.

How to decide

If your reason for looking at Neovim is Lua configuration, embedding the editor in another application, or getting LSP and Tree-sitter without assembling plugins yourself, those are the features that justify the switch. If you only need Vim's modal editing and Vimscript, Neovim remains compatible — the additions do not remove that model. Start with :help nvim-from-vim if you are coming from Vim, or :Tutor if you are not.