
close #8474 vim-patch:8.0.0264: memory error reported by ubsan vim-patch:8.0.0340: not checking return valud of dict_add() vim-patch:8.0.0346: Vim relies on limits.h to be included indirectly vim-patch:8.0.0361: GUI initialisation is not sufficiently tested vim-patch:8.0.0365: might free a dict item that wasn't allocated vim-patch:8.0.0367: types in include files may be inconsistent vim-patch:8.0.0369: a few options are not defined, depending on features vim-patch:8.0.0372: more options are not always defined vim-patch:8.0.0386: tiny build has a problem with generating the options test vim-patch:8.0.0392: GUI test fails with Athena and Motif vim-patch:8.0.0395: testing the + register fails with Motif vim-patch:8.0.0422: Python test fails with Python 3.6 vim-patch:8.0.0425: build errors when building without folding vim-patch:8.0.0432: "make shadow" creates an invalid link vim-patch:8.0.0476: missing change to main.c vim-patch:8.0.0526: Coverity complains about possible negative value vim-patch:8.0.0540: building unit tests fails vim-patch:8.0.0556: getting window position fails if GUI and term possible vim-patch:8.0.0563: crash when getting the window position in tmux vim-patch:8.0.0567: call for requesting color and ambiwidth is too early vim-patch:8.0.0569: bracketed paste is still enabled in a shell command vim-patch:8.0.0587: configure check for return value of tgetent skipped vim-patch:8.0.0588: job_stop() often assumes the channel will be closed vim-patch:8.0.0610: the screen is redrawn when default 'background' is detected vim-patch:8.0.0611: the screen is not redrawn after sending t_u7 vim-patch:8.0.0620: checking for HAVE_GTK_MULTIHEAD is not needed vim-patch:8.0.0626: in the GUI the cursor may flicker vim-patch:8.0.0628: cursor disappears after silent mapping vim-patch:8.0.0631: can't build with Perl 5.26 vim-patch:8.0.0637: crash when using some version of GTK 3 vim-patch:8.0.0639: the cursor position is set when editing a new commit message vim-patch:8.0.0649: when opening a help file the filetype is set several times vim-patch:8.0.0653: the default highlight for QuickFixLine is not good vim-patch:8.0.0690: compiler warning on non-Unix system vim-patch:8.0.0691: compiler warning without the linebreak feature vim-patch:8.0.0696: .inc files missing in git vim-patch:8.0.0719: build failure without +terminal feature vim-patch:8.0.0729: the help for the terminal configure option is wrong vim-patch:8.0.0731: cannot build the terminal feature on MS-Windows vim-patch:8.0.0741: cannot build with HPUX vim-patch:8.0.0750: OpenPTY missing in non-GUI build vim-patch:8.0.0751: OpenPTY missing with some combination of features vim-patch:8.0.0752: build fails on MS-Windows vim-patch:8.0.0763: libvterm can be improved vim-patch:8.0.0770: compiler warning for missing field initializer vim-patch:8.0.0772: other stdbool.h dependencies in libvterm vim-patch:8.0.0773: mixing 32 and 64 bit libvterm builds fails vim-patch:8.0.0774: build failure without the multi-byte feature vim-patch:8.0.0790: MSVC compiler warning for strncpy in libvterm vim-patch:8.0.0795: terminal feature does not build with older MSVC vim-patch:8.0.0808: cannot build with terminal feature and DEBUG defined vim-patch:8.0.0809: MS-Windows: tests hang vim-patch:8.0.0811: MS-Windows: test_expand_dllpath fails vim-patch:8.0.0822: Test_with_partial_callback is a tiny bit flaky vim-patch:8.0.0834: can't build without the client-server feature vim-patch:8.0.0865: cannot build with channel but without terminal feature vim-patch:8.0.0866: Solaris also doesn't have MIN and MAX vim-patch:8.0.0875: crash with weird command sequence vim-patch:8.0.0880: Travis uses an old Ubuntu version vim-patch:8.0.0901: asan suppress file missing from distribution vim-patch:8.0.0919: cursor color isn't set on startup vim-patch:8.0.0921: terminal window cursor shape not supported in the GUI vim-patch:8.0.0946: using PATH_MAX does not work well on some systems vim-patch:8.0.0954: /proc/self/exe might be a relative path vim-patch:8.0.0966: build failure without terminal feature vim-patch:8.0.0967: using a terminal may cause the cursor to blink vim-patch:8.0.0972: compiler warnings for unused variables vim-patch:8.0.0980: Coverity warning for failing to open /dev/null vim-patch:8.0.0986: terminal feature always requires multi-byte feature vim-patch:8.0.0988: warning from Covscan about using NULL pointer vim-patch:8.0.0993: sometimes an xterm sends an extra CTRL-X vim-patch:8.0.0996: Mac: t_RS is echoed on the screne in Terminal.app vim-patch:8.0.0997: Libvterm and Terminal.app not regognized from termresponse. vim-patch:8.0.1008: slow updating of terminal window in Motif vim-patch:8.0.1010: build failure without termresponse feature vim-patch:8.0.1014: old compiler doesn't know uint32_t vim-patch:8.0.1016: gnome terminal echoes t_RC vim-patch:8.0.1021: older Gnome terminal still echoes t_RC vim-patch:8.0.1026: GTK on-the-spot input has problems vim-patch:8.0.1027: more terminals can't handle requesting cursor mode vim-patch:8.0.1030: MS-Windows: wrong size computation in is_cygpty() vim-patch:8.0.1033: detecting background color does not work in screen vim-patch:8.0.1042: without the syntax feature highlighting doesn't work vim-patch:8.0.1047: buffer overflow in Ruby vim-patch:8.0.1059: older Gnome terminal returns smaller version number vim-patch:8.0.1062: Coverity warnings in libvterm vim-patch:8.0.1065: not all macro examples are included vim-patch:8.0.1066: some terminals can't handle requesting cursor mode vim-patch:8.0.1068: vandyke SecureCRT terminal can't handle cursor mode request vim-patch:8.0.1069: still get CTRL-X sometimes vim-patch:8.0.1071: putty-color and cygwin-color are not recognized vim-patch:8.0.1094: using ssh from Terminal.app runs into xterm incompatibility vim-patch:8.0.1110: FORTIFY_SOURCE from Perl causes problems vim-patch:8.0.1111: syntax error in configure when using Perl vim-patch:8.0.1118: FEAT_WINDOWS adds a lot of #ifdefs vim-patch:8.0.1136: W_WIDTH() is always the same vim-patch:8.0.1152: encoding of error message wrong in Cygwin terminal vim-patch:8.0.1155: Ruby command triggers a warning vim-patch:8.0.1157: compiler warning on MS-Windows vim-patch:8.0.1159: typo in #ifdef vim-patch:8.0.1166: :terminal doesn't work on Mac High Sierra vim-patch:8.0.1175: build failure without +termresponse vim-patch:8.0.1192: MS-Windows: terminal feature not enabled by default vim-patch:8.0.1195: can't build on MS-Windows vim-patch:8.0.1198: older compilers don't know uint8_t vim-patch:8.0.1211: cannot reorder tab pages with drag & drop vim-patch:8.0.1247: not easy to find Debian build info vim-patch:8.0.1248: stray + in README file vim-patch:8.0.1255: duplicate badge README file vim-patch:8.0.1256: typo in configure variable vim_cv_tgent vim-patch:8.0.1258: 'ttymouse' is set to "sgr" even though it's not supported vim-patch:8.0.1269: effect of autocommands on marks is not tested vim-patch:8.0.1272: warnings for unused variables in tiny build vim-patch:8.0.1273: old test file remaining vim-patch:8.0.1303: 'ttymouse' is not set to "sgr" for Terminal.app and Iterm2 vim-patch:8.0.1306: ASAN error stack trace is not useful vim-patch:8.0.1310: cproto generates errors because of missing type vim-patch:8.0.1322: textformat test isn't run vim-patch:8.0.1324: some xterm sends different mouse move codes vim-patch:8.0.1325: more tests are not run vim-patch:8.0.1327: new proto file missing from distribution vim-patch:8.0.1337: typo in #ifdef vim-patch:8.0.1369: MS-Windows: drawing underline slow, mFallbackDC not updated vim-patch:8.0.1380: using "vim -r swapfile" the hit-enter prompt is misplaced. vim-patch:8.0.1394: cannot intercept a yank command vim-patch:8.0.1415: warning for unused function without timers feature vim-patch:8.0.1424: the timer_pause test is flaky on Travis vim-patch:8.0.1437: pkg-config doesn't work with cross compiling vim-patch:8.0.1456: timer test on travis Mac is still flaky vim-patch:8.0.1467: libvterm doesn't handle illegal byte sequence correctly vim-patch:8.0.1478: unnecessary condition vim-patch:8.0.1504: Win32: the screen may be cleared on startup vim-patch:8.0.1506: new version of HP NonStop (Tandem) doesn't like a header vim-patch:8.0.1532: compiler warnings without termguicolors feature vim-patch:8.0.1556: may not parse the t_RS response correctly vim-patch:8.0.1564: too many #ifdefs vim-patch:8.0.1565: can't build Mac version without GUI vim-patch:8.0.1566: too many #ifdefs vim-patch:8.0.1567: cannot build Win32 GUI without IME vim-patch:8.0.1571: can't build without GUI vim-patch:8.0.1573: getwinpos(1) may cause response to be handled as command vim-patch:8.0.1580: FEAT_CURSORBIND and FEAT_SCROLLBIND are unused vim-patch:8.0.1581: cannot build Win32 GUI without +eval vim-patch:8.0.1583: using C99 comment vim-patch:8.0.1584: using C99 in Mac file gives compiler warning messages vim-patch:8.0.1585: enabling beval_term feature in Win32 GUI vim-patch:8.0.1586: imactivatefunc does not work on non-GUI Mac vim-patch:8.0.1597: autocommand events are not sorted vim-patch:8.0.1603: cannot build with +terminal but without +menu vim-patch:8.0.1606: singular/plural variants not translated vim-patch:8.0.1608: Win32: directx not enabled by default vim-patch:8.0.1610: cannot build without GUI vim-patch:8.0.1613: warning for unused variable in tiny build vim-patch:8.0.1614: "make tags" doesn't include libvterm vim-patch:8.0.1618: color Grey50 is missing in the compiled-in table vim-patch:8.0.1625: test_quotestar is flaky when run in GTK GUI vim-patch:8.0.1627: compiler warning for visibility attribute not supported vim-patch:8.0.1635: undefining _POSIX_THREADS causes problems with Python 3 vim-patch:8.0.1639: libvterm code lags behind master vim-patch:8.0.1646: MS-Windows: executable contains unreferenced functions vim-patch:8.0.1650: too many #ifdefs vim-patch:8.0.1659: scroll events not recognized for some xterm emulators vim-patch:8.0.1663: cannot build without multi-byte feature vim-patch:8.0.1674: libvterm can't handle an OSC string split vim-patch:8.0.1675: unused macro argument in libvterm vim-patch:8.0.1679: compiler warning for printf format vim-patch:8.0.1683: Python upgrade breaks Vim when defining PYTHON_HOME vim-patch:8.0.1686: Python does not work when configuring with specific dir vim-patch:8.0.1692: Python may not work when using statically linked library vim-patch:8.0.1696: coverage statistics don't work vim-patch:8.0.1698: coverage statistics don't work on coveralls vim-patch:8.0.1699: leftover stuff for Python 1.4 vim-patch:8.0.1700: coverage statistics still don't work on coveralls vim-patch:8.0.1701: can disable COLOR_EMOJI with MSVC but not MinGW vim-patch:8.0.1710: building with Ruby fails vim-patch:8.0.1717: C89 check causes too much trouble vim-patch:8.0.1719: cannot specify which Python executable configure should use vim-patch:8.0.1730: no configure check for the used C99 features vim-patch:8.0.1736: check for C99 features is incomplete vim-patch:8.0.1737: fchown() used when it is not supported vim-patch:8.0.1739: MS-Windows with msys2 cannot build Ruby statically vim-patch:8.0.1741: MS-Windows with msys2 cannot build Ruby statically vim-patch:8.0.1749: VMS: 100% CPU use, redefining mch_open() fails vim-patch:8.0.1751: #ifdef causes bad highlighting vim-patch:8.0.1755: MS-Windows: high unicode char received as two utf-16 words vim-patch:8.0.1757: unnecessary changes in libvterm vim-patch:8.0.1760: wrong number of arguments to vms_read() vim-patch:8.0.1764: lgtm considers tutor.es to be EcmaScript vim-patch:8.0.1785: missing symbol in Win32 small build vim-patch:8.0.1788: tool to check a color scheme is not installed vim-patch:8.0.1791: using uint8_t does not work everywhere vim-patch:8.0.1813: Windows installer doesn't install terminal debugger vim-patch:8.0.1825: might use NULL pointer when out of memory vim-patch:8.0.1840: getwinpos() is not tested vim-patch:8.0.0216: decoding js style json may fail vim-patch:8.0.1391: encoding empty string to JSON sometimes gives "null" vim-patch:8.0.1602: crash in parsing JSON vim-patch:8.1.0343: #9041
Wiki | Documentation | Twitter | Community | Gitter 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 without modifications to the core
- Maximize extensibility
See the wiki and Roadmap for more information.
Features
- Modern GUIs
- API access from any language including clojure, lisp, go, haskell, lua, javascript, perl, python, 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 source
make CMAKE_BUILD_TYPE=RelWithDebInfo
sudo make install
To install to a non-default location, set CMAKE_INSTALL_PREFIX
:
make CMAKE_EXTRA_FLAGS="-DCMAKE_INSTALL_PREFIX=/full/path/"
make install
To list all targets:
cmake --build build --target help
To skip "bundled" (third-party/*
) dependencies define 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!
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/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 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:
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.