Documentation | Chat Neovim is a project that seeks to aggressively refactor Vim in order to: Simplify maintenance and encourage contributions Split the work between multiple developers Enable [advanced UIs]…
Documentation |
Chat




Neovim is a project that seeks to aggressively refactor Vim in order to:
- Simplify maintenance and encourage [contributions](CONTRIBUTING.md)
- Split the work between multiple developers
- Enable [advanced UIs] without modifications to the core
- Maximize extensibility
Features
--------
- Modern GUIs
- API access
- Embedded, scriptable terminal emulator
- Asynchronous job control
- Shared data (shada) among multiple editor instances
- XDG base directories support
- Compatible with most Vim plugins, including Ruby and Python plugins
:help nvim-features][nvim-features] for the full list, and [:help news][nvim-news] for noteworthy changes in the latest version!
Install from package
--------------------
Pre-built packages for Windows, macOS, and Linux are found on the
Releases page.
[Managed packages] are in [Homebrew], [Debian], [Ubuntu], [Fedora], [Arch Linux], [Void Linux], [Gentoo], and more!
Install from source
-------------------
See [BUILD.md](./BUILD.md) and supported platforms for details.
The build is CMake-based, but a Makefile is provided as a convenience. After installing the dependencies, run the following command.bash
make CMAKE_BUILD_TYPE=RelWithDebInfo
sudo make install
To install to a non-default location:
bash
make CMAKE_BUILD_TYPE=RelWithDebInfo CMAKE_INSTALL_PREFIX=/full/path/
make install
CMake hints for inspecting the build:
cmake --build build --target helplists all build targets.build/CMakeCache.txt(orcmake -LAH build/) contains the resolved values of all CMake variables.build/compile_commands.jsonshows the full compiler invocations for each translation unit.
See :help nvim-from-vim for instructions.
Project layout
--------------
├─ cmake/ CMake utils
├─ cmake.config/ CMake defines
├─ cmake.deps/ subproject to fetch and build dependencies (optional)
├─ runtime/ plugins and docs
├─ src/nvim/ application source code (see src/nvim/README.md)
│ ├─ api/ API subsystem
│ ├─ eval/ Vimscript subsystem
│ ├─ event/ event-loop subsystem
│ ├─ generators/ code generation (pre-compilation)
│ ├─ lib/ generic data structures
│ ├─ lua/ Lua subsystem
│ ├─ msgpack_rpc/ RPC subsystem
│ ├─ os/ low-level platform code
│ └─ tui/ built-in UI
└─ test/ tests (see test/README.md)
License
-------
Neovim contributions since [b17d96][license-commit] are licensed under the
Apache 2.0 license, except for contributions copied from Vim (identified by thevim-patch token). See [LICENSE.txt](./LICENSE.txt) for details.
[license-commit]: https://github.com/neovim/neovim/commit/b17d9691a24099c9210289f16afb1a498a89d803
[nvim-features]: https://neovim.io/doc/user/vim_diff.html#nvim-features
[nvim-news]: https://neovim.io/doc/user/news.html
[Roadmap]: https://neovim.io/roadmap/
[advanced UIs]: https://github.com/neovim/neovim/wiki/Related-projects#gui
[Managed packages]: ./INSTALL.md#install-from-package
[Debian]: https://packages.debian.org/testing/neovim
[Ubuntu]: https://packages.ubuntu.com/search?keywords=neovim
[Fedora]: https://packages.fedoraproject.org/pkgs/neovim/neovim/
[Arch Linux]: https://www.archlinux.org/packages/?q=neovim
[Void Linux]: https://voidlinux.org/packages/?arch=x86_64&q=neovim
[Gentoo]: https://packages.gentoo.org/packages/app-editors/neovim
[Homebrew]: https://formulae.brew.sh/formula/neovim
<!-- vim: set tw=80: -->
Members
-
neovim ★ PINNED
Vim-fork focused on extensibility and usability
Vim Script ★ 101k 42m agoExplain → -
tree-sitter-vimdoc ★ PINNED
Tree-sitter parser for Vim help files
JavaScript ★ 150 6mo agoExplain → -
packspec ★ PINNED
ALPHA package dependencies spec
Lua ★ 251 1mo agoExplain → -
node-client ★ PINNED
Nvim Node.js client and plugin host
TypeScript ★ 530 1d agoExplain → -
go-client ★ PINNED
Nvim Go client
Go ★ 631 1y agoExplain → -
neovim-releases ★ PINNED
Unsupported Nvim releases
★ 255 20h agoExplain → -
nvim-lspconfig
Quickstart configs for Nvim LSP
Lua ★ 14k 1d agoExplain → -
pynvim
Python client and plugin host for Nvim
Python ★ 1.7k 2mo agoExplain → -
neovim.github.io
Neovim website
HTML ★ 608 4d agoExplain → -
homebrew-neovim ▣
Homebrew formula
★ 400 9y agoExplain → -
neovim-ruby
Ruby support for Neovim
Ruby ★ 366 1mo agoExplain → -
libvterm ▣
No description.
C ★ 189 1d agoExplain → -
nvim.net
Nvim .NET client and plugin host
C# ★ 98 5d agoExplain → -
lua-client ▣
DEPRECATED
Lua ★ 86 3y agoExplain → -
nvimdev.nvim
Neovim plugin for working on Neovim
Lua ★ 79 5mo agoExplain → -
python-gui ▣
Proof-of-concept Nvim GUI. Not maintained.
Python ★ 76 7y agoExplain → -
node-host ▣
node.js host (for Nvim 0.2.0 or older)
Vim script ★ 42 8y agoExplain → -
doc ▣
Generated documentation and reports
HTML ★ 38 1mo agoExplain → -
neovim-snap
Snap package for Nvim
Shell ★ 31 16h agoExplain → -
unibilium ⑂
https://github.com/neovim/neovim/blob/master/MAINTAIN.md#third-party-dependencies
C ★ 30 1y agoExplain → -
libtermkey ▣
No description.
C ★ 28 2y agoExplain → -
VSNvim
Nvim extension for Visual Studio 2017
C++ ★ 28 7y agoExplain → -
bot-ci ▣
[DEPRECATED], now lives at https://github.com/neovim/doc
★ 24 4y agoExplain → -
deps
Dependencies for Nvim CI
C ★ 17 2d agoExplain → -
libuv ⑂ ▣
[DEPRECATED] Nvim 0.6+ uses upstream libuv, not this fork.
C ★ 6 4y agoExplain → -
neovim-backup
Backup Neovim GitHub issues, comments, discussions, etc.
★ 3 4d agoExplain → -
marvim-bot ▣
Proof of concept bot that interacts as Marvim
Rust ★ 3 4y agoExplain → -
tree-sitter-c ⑂ ▣
C grammar for tree-sitter
JavaScript ★ 3 2y agoExplain → -
playground ⑂ ▣
Treesitter playground integrated into Neovim
★ 2 3y agoExplain → -
winget-pkgs ⑂ ▣
The Microsoft community Windows Package Manager manifest repository
★ 2 2y agoExplain →
No repos match these filters.