
vim-patch:8.0.1543: with 'termguicolors' Normal color doesn't work correctly vim-patch:8.1.0089: error when ending the terminal debugger vim-patch:8.1.0557: Termdebug: gdb may use X.Y for breakpoint number vim-patch:8.1.0575: Termdebug: clearing multi-breakpoint does not work vim-patch:8.1.0621: terminal debugger does not handle unexpected debugger exit vim-patch:8.1.1637: after running tests and clean the XfakeHOME directory remains vim-patch:8.1.2105: MS-Windows: system() may crash vim-patch:8.1.2116: no check for out of memory vim-patch:8.1.2149: crash when running out of memory very early vim-patch 8.1.2242: creating docs tags uses user preferences vim-patch:8.2.0599: Netbeans interface insufficiently tested vim-patch:8.2.0673: cannot build Haiku in shadow directory vim-patch:8.2.0676: pattern in list of distributed files does not match vim-patch:8.2.0680: PTYGROUP and PTYMODE are unused vim-patch:8.2.0689: when using getaddrinfo() the error message is unclear vim-patch:8.2.0702: running channel tests may leave running process behind vim-patch:8.2.0709: MS-Windows: compiler warning for int vs size_t vim-patch:8.2.0720: occasional exit when encountering an X error vim-patch:8.2.0727: MS-Windows: new gcc compiler does not support scanf format vim-patch:8.2.0740: minor message mistakes vim-patch:8.2.0741: Python tests fail because of changed message vim-patch:8.2.0744: the name vim is not capatilized in a message vim-patch:8.2.0750: netbeans test is a bit flaky vim-patch:8.2.0756: MS-Windows: still a compiler warning vim-patch:8.2.0762: buffer is not considered modified after setting crypt key vim-patch:8.2.0763: GUI test fails without the terminal feature vim-patch:8.2.0765: In the GUI can't use all the modifiers. vim-patch:8.2.0767: modifyOtherKeys active when using a shell command in autocmd vim-patch:8.2.0770: cannot map CTRL-B when using the GUI vim-patch:8.2.0773: switching to raw mode every time ":" is used vim-patch:8.2.0776: libvterm code lags behind the upstream version vim-patch:8.2.0777: terminal test fails vim-patch:8.2.0778: libvterm code lags behind the upstream version vim-patch:8.2.0779: tmode_T not used everywhere vim-patch:8.2.0780: libvterm code lags behind the upstream version vim-patch:8.2.0783: libvterm code lags behind the upstream version vim-patch:8.2.0784: libvterm code lags behind the upstream version vim-patch:8.2.0785: libvterm code lags behind the upstream version vim-patch:8.2.0786: channel test is flaky on FreeBSD vim-patch:8.2.0787: libvterm code lags behind the upstream version vim-patch:8.2.0788: memory leak in libvterm vim-patch:8.2.0792: build failure with small features vim-patch:8.2.0794: libvterm code lags behind the upstream version vim-patch:8.2.0795: libvterm code lags behind the upstream version vim-patch:8.2.0796: MS-Windows: compiler can't handle C99 construct in libvterm vim-patch:8.2.0797: MS-Windows: compiler still can't handle C99 construct vim-patch:8.2.0798: libvterm code lags behind the upstream version vim-patch:8.2.0799: build fails if snprintf is not available vim-patch:8.2.0800: errors from failing test are unclear vim-patch:8.2.0801: terminal test fails on Mac vim-patch:8.2.0802: libvterm code lags behind the upstream version vim-patch:8.2.0803: libvterm code lags behind the upstream version vim-patch:8.2.0804: libvterm code lags behind the upstream version vim-patch:8.2.0805: terminal key codes test fails on some systems vim-patch:8.2.0808: not enough testing for the terminal window vim-patch:8.2.0811: terminal keycode test is flaky vim-patch:8.2.0813: libvterm code is slightly different from upstream vim-patch:8.2.0816: terminal test fails when compiled with Athena vim-patch:8.2.0828: Travis: regexp patttern doesn't work everywhere vim-patch:8.2.0830: Motif: can't map "!" vim-patch:8.2.0831: compiler warnings for integer sizes vim-patch:8.2.0833: mapping doesn't work in the GUI vim-patch:8.2.0835: Motif: mapping still doesn't work vim-patch:8.2.0837: compiler warning for value set but not used vim-patch:8.2.0842: MS-Windows: channel tests fail vim-patch:8.2.0846: build failure with small features vim-patch:8.2.0849: BeOS code is not maintained and probably unused vim-patch:8.2.0852: cannot map CTRL-S on some systems vim-patch:8.2.0854: xxd cannot show offset as a decimal number vim-patch:8.2.0857: GTK cell height can be a pixel too much vim-patch:8.2.0870: MS-Windows: Control keys don't work in the GUI vim-patch:8.2.0872: XIM code is mixed with multi-byte code vim-patch:8.2.0885: "make shadow" does not link new lua test dir vim-patch:8.2.0889: using old style comments vim-patch:8.2.0903: comparing WINVER does not work correctly vim-patch:8.2.0910: Vim is not reproducibly buildable vim-patch:8.2.0914: MS-Windows: cannot specify a "modified by" text vim-patch:8.2.0931: some remarks about BeOS remain vim-patch:8.2.0939: checking for term escape sequences is long and confusing vim-patch:8.2.0940: build failure with tiny features vim-patch:8.2.0941: detecting terminal properties is unstructured vim-patch:8.2.0944: xxd test leaves file behind vim-patch:8.2.0962: terminal test sometimes hangs on Travis vim-patch:8.2.0971: build with tiny features fails vim-patch:8.2.0978: leaking memory in termcodes test vim-patch:8.2.0979: a couple of screendump tests fail vim-patch:8.2.0989: crash after resizing a terminal window vim-patch:8.2.1010: build failure in libvterm with debug enabled vim-patch:8.2.1013: channel tests can be a bit flaky vim-patch:8.2.1017: Appveyor output doesn't show MinGW console features vim-patch:8.2.1027: GUI: multi-byte characters do not work in a terminal vim-patch:8.2.1030: reducing size of a terminal window may cause a crash vim-patch:8.2.1031: build failure with Perl5.32 vim-patch:8.2.1057: cannot build with dynamic Lua vim-patch:8.2.1072: missing libvterm test vim-patch:8.2.1093: Python: double free when adding item to dict fails vim-patch:8.2.1094: dead code in libvterm
Documentation | Chat | Twitter
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 without modifications to the core
- Maximize extensibility
See the Introduction wiki page and Roadmap for more information.
Features
- Modern GUIs
- API access from any language including C/C++, C#, Clojure, D, Elixir, Go, Haskell, Java, JavaScript/Node.js, Julia, Lisp, Lua, Perl, Python, Racket, Ruby, Rust
- 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
See :help nvim-features
for the full list!
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!
Install from source
The build is CMake-based, but a Makefile is provided as a convenience.
make CMAKE_BUILD_TYPE=RelWithDebInfo
sudo make install
To install to a non-default location:
make CMAKE_INSTALL_PREFIX=/full/path/
make install
To skip bundled (third-party/*
) dependencies:
- Install the dependencies using a package manager.
sudo apt install gperf luajit luarocks libuv1-dev libluajit-5.1-dev libunibilium-dev libmsgpack-dev libtermkey-dev libvterm-dev libutf8proc-dev sudo luarocks build mpack sudo luarocks build lpeg sudo luarocks build inspect
- Build with
USE_BUNDLED=OFF
:make CMAKE_BUILD_TYPE=RelWithDebInfo USE_BUNDLED=OFF sudo make install
To inspect the build, these CMake features are useful:
cmake --build build --target help
lists all build targets.build/CMakeCache.txt
(orcmake -LAH build/
) contains the resolved values of all CMake variables.build/compile_commands.json
shows the full compiler invocations for each translation unit.
See the Building Neovim wiki page for details.
Transitioning from Vim
See :help nvim-from-vim
for instructions.
Project layout
├─ ci/ build automation
├─ cmake/ build scripts
├─ runtime/ user plugins/docs
├─ src/nvim/ application source code (see src/nvim/README.md)
│ ├─ 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/README.md)
License
Neovim contributions since b17d96 are licensed under the
Apache 2.0 license, except for contributions copied from Vim (identified 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:
http://iccf-holland.org/
http://www.vim.org/iccf/
http://www.iccf.nl/
You can also sponsor the development of Vim. Vim sponsors can vote for
features. The money goes to Uganda anyway.