Vim-fork focused on extensibility and usability
Clone or download
Failed to load latest commit information.
busted/outputHandlers test: Dump $NVIM_LOG_FILE contents (#8926) Aug 28, 2018
ci CI/AppVeyor: Avoid "warning" which causes non-zero retcode Nov 4, 2018
cmake build: adjust some messages (#9087) Oct 6, 2018
config *: Add some PVS comments Apr 15, 2018
contrib contrib: fix (#8286) Apr 16, 2018
man doc: manpage Nov 5, 2018
runtime UI/TUI: improvements and cleanups for scrolling and clearing Nov 11, 2018
scripts doc: merge sponsor.txt into intro.txt Nov 5, 2018
snap dist: snap packaging #7918 Jan 29, 2018
src lint Nov 12, 2018
test test: adjust time-sensitive tests (#9220) Nov 10, 2018
third-party build/win: LibuvCMakeLists.txt: adapt to moved headers Nov 1, 2018
unicode Update unicode files Jul 10, 2018
.editorconfig editorconfig: Fix charset name #9070 Sep 30, 2018
.gitignore makedeps.bat Jun 5, 2018
.travis.yml CI/travis/macOS: fix missing pip3 Oct 13, 2018 Update backer URL Nov 12, 2015
BSDmakefile build: show a hint for BSD make (#7275) Sep 16, 2017
CMakeLists.txt build: relax find_package() version spec Nov 6, 2018 doc: job/channel, misc #7783 Jun 10, 2018 doc: Jul 8, 2017
LICENSE LICENSE: add LuaJIT notice. #899 Jun 30, 2014 doc: xdg,, channel-id, job control Oct 11, 2018
Makefile build: `make helphtml` Nov 5, 2018 build: dependencies: specify minimum versions Nov 4, 2018
appveyor.yml CI/AppVeyor: invalidate .deps if build.ps1 changes Oct 21, 2018
codecov.yml CI/Codecov: disable changes status Sep 9, 2018


Wiki | Documentation | Twitter | Community | Gitter Chat

Travis build status AppVeyor build status Codecov coverage Coverity Scan analysis Clang analysis PVS-Studio analysis

Packages Debian CI Downloads

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

See the Introduction wiki page and Roadmap for more information.

Throughput Graph


See :help nvim-features for the full list!

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 (third-party/*) define USE_BUNDLED=NO:

sudo apt install gperf libluajit-5.1-dev libunibilium-dev libmsgpack-dev libtermkey-dev libvterm-dev libjemalloc-dev

See the Building Neovim wiki page for details.

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, Gentoo, and more!

Transitioning from Vim

See :help nvim-from-vim for instructions.

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/


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.