Vibeleaderboard
Index / tool
Visit neovim.io
Category
Developer Tools
Rank
Pricing
Open Source
Type
TOOL
Builder
neovim
Latest release
nightly
Date

About

A modern, extensible text editor that's a complete refactor of Vim. It features advanced APIs for any programming language, embedded terminal emulator, asynchronous operations, and compatibility with most Vim plugins while being easier to maintain and extend.

What it does

Neovim runs an editing engine that can serve either its built-in terminal interface or attached clients. It accepts files, standard input, startup commands, remote requests, and headless operation. Local sockets, named pipes, or TCP carry editor requests and screen updates.

Why it's ranked here

Neovim is compelling when the editor must act as both an interactive workspace and a programmable service. Its separate UI architecture, multilingual API clients, asynchronous jobs, shared session data, and broad Vim plugin compatibility create unusually flexible integration options.

What's good

External interfaces can attach without changing the core. The API supports clients across many named languages, while asynchronous jobs keep background work practical. Users also get a scriptable terminal, shared data between editor instances, XDG directory support, and extensive package availability.

Tradeoffs

Compatibility covers most Vim plugins, not every plugin. Upgrades require checking documented breaking changes. Building from source needs platform prerequisites and a CMake-based toolchain, while Windows has several distinct build routes. A modern desktop GUI comes from related projects rather than the core package alone.

How to use it well

Choose Neovim for keyboard-driven editing, terminal-centered development, remote control, or a custom interface backed by an editor service. Start with a managed or prebuilt package, then add compatible plugins and API clients deliberately. Look elsewhere if you need a bundled modern desktop GUI without assembling related components.

Technical notes+

src/nvim/main.c initializes the event loop, channels, terminal subsystem, UI, Lua interpreter, headless mode, embedded mode, remote requests, and the editor server. src/nvim/msgpack_rpc/server.c accepts RPC connections over TCP, Unix sockets, or Windows named pipes and caps each listener at 32 connections. Makefile wraps the CMake build, exposes nvim and libnvim targets, and provides functional tests, unit tests, formatting, linting, benchmarks, installation, and AppImage targets. src/wasm/app.js implements a browser grid UI over RPC using a worker transport; it requires cross-origin isolation for SharedArrayBuffer. BUILD.md documents bundled dependency fetching, multiple build types, Windows toolchains, localization, and source installation.

Observed

License
Apache 2.0 covers Neovim contributions, except contributions copied from Vim, which are identified separately.
Implementation
The core application and RPC server are implemented in C; repository tooling and runtime surfaces also include Lua, Python, and JavaScript.
Install surface
Prebuilt packages are provided for Windows, macOS, and Linux, with managed packages listed for Homebrew and several Linux distributions.
Interfaces
Provides a built-in terminal UI, external UI support, command-line operation, and an RPC API with clients in many languages.
Platform support
Installation documentation covers Windows, macOS, Linux, BSD, Cygwin, MSYS2, MinGW, and WSL workflows.
Repository structure
The project separates API, event loop, Lua, RPC, operating-system, terminal UI, generated-source, runtime, and test areas.

Read from README.md, Makefile, src/bit.c, src/bit.h, src/coverity-model.c, src/nvim/main.c, src/nvim/main.h, src/wasm/app.js, src/nvim/msgpack_rpc/server.c, src/nvim/msgpack_rpc/server.h, scripts/shadacat.py, .clangd, .luacov, .mailmap, BUILD.md.

What it can do

  • Edit and manipulate text files

    Text files of any formatModified text files

  • Execute terminal commands within the editor

    Shell commandsCommand execution results in embedded terminal

  • Extend functionality through plugin installation

    Vim-compatible plugins and configuration filesEnhanced editor with additional features

  • Perform asynchronous background operations

    Long-running tasks or processesCompleted tasks without blocking the editor interface

  • Integrate with external tools via APIs

    API calls from any programming languageEditor state changes and responses

  • Navigate and search through code and text

    Search patterns and navigation commandsLocated text positions and highlighted matches

Tags

text-editorvimclieditorterminalprogrammingapiextensible

Media

Neovim

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.