Dev In The Mountain Header
A Developer In The mountains having fun

Last reviewed

Benefits of NeoVIM (updated Nov 2026)

Updated November 2026: This post dates from 2023. I rewrote it around my own experience, corrected the sections on customization and language support, and added what has changed in NeoVIM since then. Its address also changed.

NeoVIM is a modern take on the classic Vim editor. It was my main editor for years, and although I've since mostly switched to Doom Emacs, I still like Neovim with LazyVim and reach for it sometimes. Here's what I think makes it good.

Speed

It starts almost instantly and stays fast on large files.

At home in the terminal

Neovim works the same over SSH, in a terminal multiplexer, or inside WSL. You can take your whole editing setup to a remote machine, and it runs on Linux, macOS, and Windows.

Lua

Plugins and configuration are written in Lua, a small and quick language that most people can read. You can still use Vimscript too, but Lua makes it much easier to tailor the editor to how you work.

Real language support

Neovim has a built-in LSP client and Tree-sitter support. Add a language server and parser for a language and you get code completion, go-to-definition, diagnostics, and accurate syntax highlighting for it.

Setups you don't have to build yourself

You don't need to configure everything by hand. LazyVim is what I use. It has an extras system where one toggle gets you a complete language setup, and Mason installs the language servers, formatters, and linters for you. See my Vim notes for other starting points.

The downsides

  • It's hard to get started with if you don't already know Vim keys, though I think learning them is worth it no matter what editor you end up in.
  • Plugins change fast. Plugin updates have broken my config, and :Lazy sync once quietly removed a plugin I wanted.
  • The terminal decides your font, so you can't have mixed fonts or font sizes inside the editor.
  • Its Git and notes tooling doesn't match Magit and Org mode in Doom Emacs.

What's changed since this was written

NeoVIM now needs fewer plugins to do the same work:

  • 0.9 added vim.loader, which speeds up startup by caching Lua modules.
  • 0.10 added built-in commenting with gc.
  • 0.11 added vim.lsp.config() and vim.lsp.enable(), which make language servers simpler to set up.
  • 0.12 added vim.pack, a built-in plugin manager.
More places to find me
Mental Health
follow me on Mastodon