# Neovim

> Extensible text editor forked from Vim with async job control, embedded terminal, and language API access

Stars: 103.3k · Language: C · License: Apache-2.0 · Categories: Editor

- Repository: https://github.com/neovim/neovim
- Website: https://neovim.io
- Page: https://www.trmn.sh/tools/neovim

## Install

- Homebrew: `brew install neovim`
- Source: `make CMAKE_BUILD_TYPE=RelWithDebInfo && sudo make install`

## Overview

Neovim is a refactored fork of the Vim text editor that maintains compatibility with most Vim plugins while adding modern capabilities. It features asynchronous job control, an embedded scriptable terminal emulator, and API access from multiple programming languages including Python, JavaScript, Go, Rust, and others. The editor supports XDG base directories and shared data (shada) between multiple editor instances.

The project provides both terminal and GUI interfaces, with the core editor exposing APIs that enable advanced user interfaces without modifying the core codebase. Neovim includes built-in Lua scripting support and maintains compatibility with existing Vimscript configurations and Ruby/Python plugins. It supports CMake-based builds and offers pre-built packages for Windows, macOS, and Linux through various package managers including Homebrew, Debian, Ubuntu, Fedora, and Arch Linux.

Developers transitioning from Vim can use existing configurations with minimal changes, while new users benefit from the enhanced extensibility and asynchronous capabilities. The editor targets users who need a highly configurable text editor with scripting capabilities, plugin support, and integration with external development tools.

### Installation

```bash
# via Homebrew
brew install neovim
```

```bash
# via Source
make CMAKE_BUILD_TYPE=RelWithDebInfo && sudo make install
```

## Alternatives

- [Helix](https://www.trmn.sh/tools/helix.md): A terminal-based text editor written in Rust, inspired by Kakoune and Neovim with built-in language server support (Rust, 46.8k stars)
- [Vim](https://www.trmn.sh/tools/vim.md): Vi-compatible modal text editor with multi-level undo, syntax highlighting, spell checking, a scripting language (Vim9 script), and an optional GUI. (Vim Script, 41.2k stars)
- [micro](https://www.trmn.sh/tools/micro.md): Terminal-based text editor with modern features, multiple cursors, and syntax highlighting for 130+ languages (Go, 29.8k stars)
- [Edit](https://www.trmn.sh/tools/edit.md): Terminal text editor written in Rust, modeled on the MS-DOS Editor with VS Code-style input controls. Runs on Windows, macOS, and Linux. (Rust, 14.7k stars)
- [Kakoune](https://www.trmn.sh/tools/kakoune.md): Modal code editor inspired by Vim that uses multiple selections as its core editing model, with a client-server architecture and external tool integration. (C++, 11.1k stars)

## Guides

- [Neovim Alternatives](https://www.trmn.sh/alternatives/neovim): Neovim alternatives compared: Helix, micro, Flow Control and amp. Modal and non-modal terminal editors with built-in LSP and tree-sitter.
- [Best Terminal Text Editors](https://www.trmn.sh/best/terminal-text-editors): Compare Neovim, Helix, Amp and Flow Control: terminal text editors with modal or Vim-style keybindings, LSP, and tree-sitter support.
- [Neovim vs Helix](https://www.trmn.sh/compare/neovim-vs-helix): Neovim vs Helix: Lua-scriptable Vim fork in C against a Rust modal editor with built-in LSP and selection-first editing.
- [Neovim vs micro](https://www.trmn.sh/compare/neovim-vs-micro): Neovim vs micro: a Vim-fork editor with Lua and Vimscript plugins against a single-binary Go editor with Ctrl-s/Ctrl-c keybindings.

---

Canonical: https://www.trmn.sh/tools/neovim
