vim-patch:8.2.1857: Vim9: using job_status() on an unused var gives an error vim-patch:8.2.2064: terminal: cursor is on while redrawing, causing flicker vim-patch:8.2.3585: crash when passing float to "term_rows" of term_start() vim-patch:8.2.3640: freeze when calling term_wait() in a close callback vim-patch:8.2.3666: libvterm is outdated vim-patch:8.2.3803: GUI: crash with 'writedelay' set using a terminal window vim-patch:8.2.4695: JSON encoding could be faster vim-patch:8.2.4699: hard to reproduce hang when reading from a channel vim-patch:8.2.4757: list of libraries to suppress lsan errors is outdated vim-patch:8.2.4788: large payload for LSP message not tested vim-patch:8.2.4830: possible endless loop if there is unused typahead vim-patch:8.2.5055: statusline is not updated when terminal title changes vim-patch:9.0.0235: 'autoshelldir' does not work with chunked respose vim-patch:9.0.0394: Cygwin: multibyte characters may be broken in terminal window vim-patch:9.0.0524: build instructions for MS-Windows are outdated vim-patch:9.0.0774: the libvterm code is outdated vim-patch:9.0.1269: channel test often fails on Mac OS vim-patch:9.0.1487: Content-type header for LSP channel not according to spec vim-patch:9.0.1498: in a terminal window the cursor may jump around vim-patch:9.0.1509: error message lacks mentioning the erroneous argument vim-patch:9.0.1527: crash when using negative value for term_cols vim-patch:9.0.1627: no generic mechanism to test syntax plugins vim-patch:9.0.1628: syntax tests fail on FreeBSD vim-patch:9.0.1692: Android not handling AI_V4MAPPED ai_flag vim-patch:9.0.1790: Redundant LSP Content-Type header vim-patch:b147d3148 tests: Improve the codestyle test (#12988) vim-patch:9.0.1922: LSP server request message is misinterpreted as a response message vim-patch:9.0.1927: patch 1916 (fixed terminal size) not optimal vim-patch:9.0.1929: runtime tests fail with tiny vim vim-patch:9.0.1939: still a problem when processing LSP RPC requests vim-patch:4ae16d721 Improve CONTRIBUTING.md vim-patch:74a233184 NSIS: Possibility to include translated license and README.txt files (#14311) vim-patch:3ac83c714 The CODEOWNERS File is not useful vim-patch:b7258738f runtime(doc): fix typo in usr_52.txt vim-patch:f5c8f520b runtime(doc): fix typo in vim9script help file (#14782) vim-patch:bad9577b9 runtime(doc): include some vim9 script examples in the help vim-patch:98fb81846 runtime(comment): clarify the usage of 'commentstring' option value vim-patch:9.1.0473: term_start() does not clear vertical modifier vim-patch:9.1.0475: cmod_split modifier is always reset in term_start() vim-patch:9d85d4dcf runtime(manpager): avoid readonly prompt vim-patch:9.1.0606: tests: generated files may cause failure in test_codestyle vim-patch:9.1.0639: channel timeout may wrap around vim-patch:9.1.0643: terminal: cursor may end up on invalid position vim-patch:166f89e04 runtime(doc): update vim90 to vim91 in docs vim-patch:914213616 runtime(comment): add gC mapping to (un)comment rest of line vim-patch:0fb25515c runtime(comment): fix syntax error vim-patch:e021f39b7 runtime(comment): commenting might be off by one column vim-patch:7b27fc49a runtime(comment): consider &tabstop in lines after whitespace indent vim-patch:9.1.0763: tests: cannot run single syntax tests vim-patch:f64bafd98 runtime(comment): fix commment toggle with mixed tabs & spaces vim-patch:9.1.0787: cursor position changed when using hidden terminal vim-patch:55adc5b46 runtime(doc): update coding style documentation vim-patch:feea1b444 Add an .editorconfig file to repository vim-patch:ba0b45857 translation(am): Remove duplicate keys in desktop files vim-patch:de6a31301 runtime(doc): mention auto-format using clang-format for sound.c/sign.c vim-patch:9.1.0989: Vim9: Whitespace after the final enum value causes a syntax error vim-patch:9.1.1047: Makefiles uses non-portable syntax vim-patch:9.1.1061: tests: test_glvs fails when unarchiver not available vim-patch:7ceca3eb0 runtime(syntax-tests): Support "wait-free" test failure vim-patch:9.1.1229: the comment plugin can be improved vim-patch:20e46fa65 Improve contributing guide by adding a section on signing off commits vim-patch:9.1.1240: Regression with ic/ac text objects and comment plugin vim-patch:9.1.1254: need more tests for the comment plugin vim-patch:9.1.1259: some issues with comment package and tailing spaces vim-patch:9.1.1293: comment plugin does not handle 'exclusive' selection for comment object vim-patch:9.1.1336: comment plugin does not support case-insensitive 'commentstring' vim-patch:9.1.1348: still E315 with the terminal feature vim-patch:55f9e2bef runtime(doc): Tweak documentation style in develop.txt vim-patch:9.1.1399: tests: test_codestyle fails for auto-generated files vim-patch:9.1.1456: comment plugin fails toggling if 'cms' contains \ vim-patch:aef2e53cf runtime(comment): handle special chars ^$[ robustly vim-patch:1cbe3e89c runtime(comment): add <Plug>-mappings vim-patch:9.1.1536: tests: test_plugin_comment uses wrong :Check command vim-patch:58706ac04 Update editorconfig and the documented C-style for sign.c/sound.c vim-patch:9.1.1597: CI reports leaks in libgtk3 library vim-patch:46ec89902 runtime(doc): update develop assumptions vim-patch:bc51ec53d runtime(doc): Update CONTRIBUTING and clarify use of Vim9 script vim-patch:d1833d282 runtime(doc): allow more C99 features vim-patch:0ed08788a runtime(doc): document use of proto files in develop.txt vim-patch:05662b63b runtime(doc): Tweak spacing in develop.txt vim-patch:e89efc22b runtime(doc): update Vim policy vim-patch:fabe9a4c8 nsis: Getting the Vim version number via makensis vim-patch:9.1.1841: patch 9.1.1840 adds python build dependency vim-patch:bcf6c32b5 runtime(doc): Tweak documentation in develop.txt vim-patch:9.1.1905: tabpanel: truncates terminal output vim-patch:9.1.1912: tests: test_plugin_comment fails vim-patch:ef7a577b2 runtime(doc): Remove outdated agide.org link vim-patch:9.1.2025: conpty terminal process may not start vim-patch:ce1636548 runtime(doc): Emphasize adding tests when contributing vim-patch:d09be1584 runtime(doc): Update Contributing.md on the use of AI vim-patch:9.1.2039: if_ruby: crash when using Ruby/dyn 4.0 vim-patch:0115da33b CI: Missing test of Vim with ConPTY on Windows vim-patch:9.1.2047: MS-Windows: style issue in gui_w32.c vim-patch:9.1.2048: MS-Windows: backspace behavior wrong with ConPTY vim-patch:9.1.2053: MS-Windows: May use wrong find command vim-patch:0ed8ba307 Always force LF line endings in old test .ok files vim-patch:a735e44b3 translation(ru): updated menu files according to the patch 9.1.1989 vim-patch:416d1a5e2 translation(ru): added a disclaimer to the license translation vim-patch:0084e4bd1 gitattributes: mark test21.ok binary, drop test42.in vim-patch:aa58f1fe4 CI: build failure in if_perl.xs vim-patch:9.1.2065: GvimExt cannot be linked statically using MinGW vim-patch:5516fc534 runtime(syntax-tests): Adapt "runtime/syntax/testdir/vimcmd" for "src/testdir/util/shared.vim" vim-patch:9.1.2073: auto/configure needs to be regenerated vim-patch:9.1.2074: Compile error with Motif GUI vim-patch:da44ef6a9 runtime(c,cpp): Add reference links to noreturn tests vim-patch:8211f556d runtime(syntax-tests): tests: sh_10 fails on MacOS runners vim-patch:9.1.2091: Ruby integration does not work correctly vim-patch:9.1.2096: Vim9: truthiness issue with objects vim-patch:9.1.2099: different line endings in ja.sjis.po and ja.po vim-patch:284f8669e CI: Reorder path in Windows CI runners and move Python3 before $PATH vim-patch:9.1.2101: Vim9: more truthiness issues vim-patch:8.2.0572: using two lines for free and reset vim-patch:8.2.2291: Vim9: cannot use "null" for v:null vim-patch:8.2.2961: keys typed during a :normal command are discarded vim-patch:9.0.1567: profiler calculation may be wrong on 32 bit builds vim-patch:9.0.1776: No support for stable Python 3 ABI vim-patch:9.0.1859: heap-use-after-free in bt_normal() vim-patch:9.0.2052: win32: using deprecated wsock32 api vim-patch:9.1.2052: Compile error when disabling linebreak feature vim-patch:5e37e31: runtime(tutor): fix wrong motion in instruction vim-patch:9.1.2067: shadow variable warning in menu.c vim-patch:f78629b: runtime(doc): Fix typo at :help 'fsync'
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/Kotlin, 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, and :help 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 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.
make CMAKE_BUILD_TYPE=RelWithDebInfo
sudo make install
To install to a non-default location:
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.
Transitioning from Vim
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 are licensed under the
Apache 2.0 license, except for contributions copied from Vim (identified by the
vim-patch token). See LICENSE.txt for details.
