# neovim/neovim

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/neovim-neovim).**

96,615 stars · 6,593 forks · Vim Script · other

## Links

- GitHub: https://github.com/neovim/neovim
- Homepage: https://neovim.io
- awesome-repositories: https://awesome-repositories.com/repository/neovim-neovim.md

## Topics

`api` `c` `lua` `neovim` `nvim` `text-editor` `vim`

## Description

Neovim is a text editing environment designed for extensibility and performance. It provides a core engine for text manipulation, multi-window management, and complex editing commands, while maintaining compatibility with existing paradigms. The project features a stable interface that allows external clients to interact with the application state, enabling the development of custom user interfaces and integrated tools.

The architecture decouples the core editing logic from the user interface through an asynchronous protocol. This system supports external rendering processes, including terminal-based and graphical frontends, by communicating grid updates, highlight states, and input events. Users can extend functionality through a scripting runtime that provides deep access to internal data structures, filesystem operations, and system processes, with support for both Lua and legacy scripting bridges.

The project includes comprehensive documentation for its extensibility APIs, language support, and interface architecture. It is available through standard package managers, pre-compiled binary archives, or via source code compilation, supported by a build system that manages dependencies and diagnostic tools.

## Tags

### Development Tools & Productivity

- [Text Editing Engines](https://awesome-repositories.com/f/development-tools-productivity/code-editors-ides/extension-ecosystems-management/editor-extensions/text-editors/text-editing-engines.md) — Handles complex multi-window text manipulation, undo history, and extensible command execution within a high-performance editing environment. ([source](https://neovim.io/doc/user/))
- [Remote Procedure Call APIs](https://awesome-repositories.com/f/development-tools-productivity/developer-utilities-libraries/extensibility-frameworks/remote-procedure-call-apis.md) — Facilitates external process communication and plugin automation by exposing a message-based interface for remote control and integration. ([source](https://neovim.io/doc/user/))
- [Dependency Management Tools](https://awesome-repositories.com/f/development-tools-productivity/package-management/dependency/dependency-management-tools.md) — Manages internal components and system-level library linking to ensure a stable and reproducible environment for core operations. ([source](https://neovim.io/doc/build/))

### Education & Learning Resources

- [Asynchronous UI Protocols](https://awesome-repositories.com/f/education-learning-resources/educational-resources/systems-applied-computing/infrastructure-architecture/computer-networks/networking-protocols/asynchronous-ui-protocols.md) — Transmits grid states and input events to external clients, enabling decoupled interface rendering through a specialized messaging protocol. ([source](https://neovim.io/doc/user/api-ui-events.html))

### Programming Languages & Runtimes

- [Lua APIs](https://awesome-repositories.com/f/programming-languages-runtimes/runtime-execution-environments/runtime-environments/runtimes/scriptable-application/lua-apis.md) — Integrates a robust scripting layer that allows direct manipulation of buffers, windows, and global settings through a comprehensive programming interface. ([source](https://neovim.io/doc/user/lua/))
