Vim script C Lua Python C++ CMake Other
Clone or download
Failed to load latest commit information.
busted/outputHandlers test/busted: eager-flushing TAP.lua handler Jul 29, 2017
ci test: give more time for nodejs Jun 4, 2018
cmake build/test: skip empty TEST_TAG, TEST_FILTER Jun 16, 2018
config *: Add some PVS comments Apr 15, 2018
contrib contrib: fix (#8286) Apr 16, 2018
man Ex mode: use getexline() instead of getexmodeline() Jun 17, 2018
runtime man.vim: improve manSentence regex (#8764) Jul 22, 2018
scripts add whitespace before "~" Jul 18, 2018
snap dist: snap packaging #7918 Jan 29, 2018
src ui: use line-based rather than char-based updates in screen.c Jul 21, 2018
test ui: add tests for hlstate extension Jul 21, 2018
third-party Raise minimum CMake version to 2.8.12 and remove compat code Jun 18, 2018
unicode Update unicode files Jul 10, 2018
.editorconfig editorconfig: handle Vim help files (#7354) Oct 4, 2017
.gitignore makedeps.bat Jun 5, 2018
.travis.yml build/CMake: find_package(… REQUIRED) Jun 5, 2018 Update backer URL Nov 12, 2015
BSDmakefile build: show a hint for BSD make (#7275) Sep 16, 2017
CMakeLists.txt version bump Jul 19, 2018 doc: job/channel, misc #7783 Jun 10, 2018 doc: Jul 8, 2017
LICENSE LICENSE: add LuaJIT notice. #899 Jun 30, 2014
Makefile build: respect $DEPS_BUILD_DIR Mar 11, 2018 doc: job/channel, misc #7783 Jun 10, 2018
appveyor.yml ci/AppVeyor: enable MSVC_32 build Mar 26, 2018
codecov.yml codecov: Report coverage even if some CI failed Feb 7, 2018


Wiki | Documentation | Twitter | Community | Gitter Chat

Travis Build Status AppVeyor Build status codecov Coverity Scan Build Clang Scan Build PVS-studio Check

Packages Debian CI Downloads

Neovim is a project that seeks to aggressively refactor Vim in order to:

See the wiki and Roadmap for more information.

Throughput Graph

Install from source

make CMAKE_BUILD_TYPE=RelWithDebInfo
sudo make install

To install to a non-default location, set CMAKE_INSTALL_PREFIX:

make install

To list all targets:

cmake --build build --target help

To skip "bundled" dependencies define USE_BUNDLED_DEPS=NO (CMake option: USE_BUNDLED=NO).

See the wiki for details.

Install from package

Pre-built packages for Windows, macOS, and Linux are found at the Releases page.

Managed packages are in Homebrew, Debian, Ubuntu, Fedora, Arch Linux, Gentoo, and more!

Project layout

├─ ci/              build automation
├─ cmake/           build scripts
├─ runtime/         user plugins/docs
├─ src/             application source code (see src/nvim/
│  ├─ api/          API subsystem
│  ├─ eval/         VimL 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
├─ third-party/     cmake subproject to build dependencies
└─ test/            tests (see test/


See :help nvim-features for the full list!


Neovim is licensed under the terms of the Apache 2.0 license, except for parts that were contributed under the Vim license.

  • Contributions committed before b17d96 remain under the Vim license.

  • Contributions committed after b17d96 are licensed under Apache 2.0 unless those contributions were copied from Vim (identified in the commit logs by the vim-patch token).

See LICENSE for details.

Vim is Charityware.  You can use and copy it as much as you like, but you are
encouraged to make a donation for needy children in Uganda.  Please see the
kcc section of the vim docs or visit the ICCF web site, available at these URLs:

You can also sponsor the development of Vim.  Vim sponsors can vote for
features.  The money goes to Uganda anyway.