github.com/neovim/neovim ↗
Vim-fork focused on extensibility and usability
Open this visualization on its own page →
Contributors
688
Lines of Code
45,668
From
2014-01-31
To
2020-12-31
About neovim/neovim
Neovim is a modern refactoring of the Vim text editor designed to improve maintainability, encourage community contributions, and enable advanced features without core modifications. The project prioritizes extensibility through a well-defined API and splits functionality into modular subsystems for easier development. It maintains compatibility with most existing Vim plugins while introducing new capabilities.
The editor includes a built-in terminal emulator, asynchronous job control, and an event-loop architecture that allows external applications to interact with it via RPC in numerous programming languages including Python, Lua, JavaScript, Go, and Rust. Additional features include modern graphical user interfaces, shared editor state across multiple instances, and support for XDG base directory standards. The codebase uses CMake for building and is organized into distinct subsystems covering the API layer, Vimscript evaluation, event handling, and Lua integration.
Neovim targets developers and power users who want a highly customizable, extensible text editor with a modern architecture. Pre-built packages are available for Windows, macOS, and Linux through major package managers including Homebrew, Debian, Ubuntu, Fedora, and Arch Linux. Users can transition from Vim with dedicated documentation, and the project welcomes contributions under the Apache 2.0 license.