closes #9489 vim-patch:8.0.0210: no support for bracketed paste vim-patch:8.0.0228: pasting in xterm on the command line has PasteStart vim-patch:8.0.0230: bracketed paste does not support line breaks vim-patch:8.0.0506: can't build with ANSI C vim-patch:8.0.0506: can't build with ANSI C vim-patch:8.0.0569: ? vim-patch:8.0.0592: vim-patch:8.0.0693: no terminal emulator support vim-patch:8.0.0694: building in shadow directory does not work vim-patch:8.0.0698: crash on exit when using Python function in timer. vim-patch:8.0.0712: the terminal implementation is incomplete vim-patch:8.0.0713: 'termkey' option not fully implemented vim-patch:8.0.0713: 'termkey' option not fully implemented (follow-up to vim-patch:8.0.0712) vim-patch:8.0.0717: terminal feature precence unclear vim-patch:8.0.0718: output of job in terminal is not displayed vim-patch:8.0.0730: terminal feature only supports Unix-like systems vim-patch:8.0.0738: cannot use the mouse to resize a terminal window vim-patch:8.0.0739: terminal resizing doesn't work well. vim-patch:8.0.0740: cannot resize a terminal window by the command vim-patch:8.0.0742: terminal feature does not work on MS-Windows vim-patch:8.0.0743: the 'termsize' option can be set to an invalid value vim-patch:8.0.0744: terminal window does not use a pty vim-patch:8.0.0745: multi-byte characters in a terminal don't display well vim-patch:8.0.0746: when :term fails the job is not properly cleaned up vim-patch:8.0.0747: :terminal without an argument doesn't work vim-patch:8.0.0748: running Vim in terminal window doesn't use the right colors vim-patch:8.0.0753: no size reports to a job running in a terminal vim-patch:8.0.0758: possible crash when using a terminal window vim-patch:8.0.0759: MS-Windows: terminal does not adjust size vim-patch:8.0.0771: cursor in terminal window not always updated in GUI vim-patch:8.0.0778: in a terminal the cursor may be hidden vim-patch:8.0.0799: missing semicolon vim-patch:8.0.0802: last line of terminal window has no color vim-patch:8.0.0804: running tests fails when stdin is /dev/null vim-patch:8.0.0812: terminal window colors shift when 'number' is set vim-patch:8.0.0840: MS-Windows: fopen() and open() prototypes are wrong vim-patch:8.0.0843: MS-Windows: compiler warning for signed/unsigned vim-patch:8.0.0844: wrong function prototype because of missing static vim-patch:8.0.0853: crash when running terminal with unknown command vim-patch:8.0.0871: status line for a terminal window always has "[+]". vim-patch:8.0.0872: no mouse scroll with a terminal window vim-patch:8.0.0886: crash when using ":term ls" vim-patch:8.0.0903: early return from test function vim-patch:8.0.0915: wrong initialisation of global vim-patch:8.0.0950: MS-Windows: wrong #ifdef, compiler warnings vim-patch:8.0.0951: another wrong #ifdef vim-patch:8.0.0969: Coverity warning for unused return value vim-patch:8.0.1003: 64 bit compiler warning vim-patch:8.0.1005: terminal without job updates slowly in GUI vim-patch:8.0.1018: warnings from 64-bit compiler vim-patch:8.0.1079: memory leak when remote_foreground() fails vim-patch:8.0.1128: old xterm sends CTRL-X in response to t_RS vim-patch:8.0.1132: #if condition is not portable vim-patch:8.0.1137: cannot build with Ruby vim-patch:8.0.1143: macros always expand to the same thing vim-patch:8.0.1145: warning when compiling with Perl vim-patch:8.0.1182: cannot see or change mzscheme dll name vim-patch:8.0.1199: when 'clipboard' is "autoselectplus" star register is set vim-patch:8.0.1299: bracketed paste does not work well in terminal window vim-patch:8.0.1545: screen dumps not included in distribution vim-patch:8.0.1548: screen dump test script not included in distribution vim-patch:8.0.1658: capitalize argument not available in long form vim-patch:8.0.1693: xxd is excluded from coverage statistics vim-patch:8.1.0363: internal diff isn't used by default as advertised vim-patch:8.1.0443: unnecessary static function prototypes vim-patch:8.1.0549: netbeans test depends on README.txt contents vim-patch:8.1.0713: images for NSIS take up too much space vim-patch:8.1.0714: unessesary #if lines in GTK code vim-patch:8.1.0727: compiler warning for sprintf() argument vim-patch:8.1.0733: too many #ifdefs for the multi-byte feature vim-patch:8.1.0764: list of distributed files is outdated vim-patch:8.1.0776: Travis does not build a version without GUI on Linux vim-patch:8.1.0841: travis config to get Lua on MacOS is too complicated vim-patch:8.1.0869: Travis CI script is too complicated vim-patch:8.1.0873: list if distributed files does not include matchit autoload vim-patch:8.1.0886: compiler warning for NULL pointer and condition always true vim-patch:8.1.0916: with Python 3.7 "find_module" is not made available vim-patch:8.1.0930: typo in Makefile vim-patch:8.1.0943: still a trace of Farsi support vim-patch:8.1.0944: format of nbdbg() arguments is not checked vim-patch:8.1.0946: Coveralls is not very useful vim-patch:8.1.0947: using MSWIN before it is defined vim-patch:8.1.0948: when built without +eval "Vim --clean" produces errors vim-patch:8.1.0949: MS-windows defines GUI macros different than other systems vim-patch:8.1.0952: compilation warnings when building the MS-Windows installer vim-patch:8.1.0955: matchit autoload directory not in installer vim-patch:8.1.0976: dosinstall still has buffer overflow problems vim-patch:8.1.0978: blob not tested with Perl vim-patch:8.1.0979: compiler warning for unused functions vim-patch:8.1.0983: checking CYGWIN32 unnecessarily vim-patch:8.1.0984: unnecessary #ifdefs vim-patch:8.1.0987: unnecessary condition in #ifdef vim-patch:8.1.0991: cannot build with a mix of features vim-patch:8.1.0996: a few screendump tests fail because of scrolling vim-patch:8.1.1008: MS-Windows: HAVE_STDINT_H only defined for non-debug version vim-patch:8.1.1009: MS-Windows: some text is not baseline aligned vim-patch:8.1.1010: Lua interface leaks memory vim-patch:8.1.1014: MS-Windows: /analyze only defined for non-debug version vim-patch:8.1.1020: compiler warning for Python3 interface vim-patch:8.1.1021: pyeval() and py3eval() leak memory vim-patch:8.1.1029: DirectWrite doesn't take 'linespace' into account vim-patch:8.1.1034: too many #ifdefs vim-patch:8.1.1039: MS-Windows build fails vim-patch:8.1.1040: FEAT_TAG_ANYWHITE is not enabled in any build vim-patch:8.1.1048: minor issues with tests vim-patch:8.1.1050: blank srceen when DirectWrite failed vim-patch:8.1.1054: not checking return value of ga_grow() vim-patch:8.1.1057: nsis config is too complicated vim-patch:8.1.1059: MS-Windows: PlatformId() is called unnecessarily vim-patch:8.1.1060: MS-Windows: get_cmd_args() is no longer needed vim-patch:8.1.1064: no test for output conversion in the GTK GUI vim-patch:8.1.1065: no test for using and deleting menu in the GUI vim-patch:8.1.1066: VIMDLL isn't actually used vim-patch:8.1.1067: issues added on github are unstructured vim-patch:8.1.1069: source README file doesn't look nice on github vim-patch:8.1.1070: issue templates are not good enough vim-patch:8.1.1075: function reference count wrong in Python code vim-patch:8.1.1081: MS-Windows: cannot use some fonts vim-patch:8.1.1092: setting 'guifont' when maximized resizes the Vim window vim-patch:8.1.1096: MS-Windows: cannot distinguish BS and CTRL-H vim-patch:8.1.1097: Motif build fails vim-patch:8.1.1104: MS-Windows: not all environment variables can be used vim-patch:8.1.1105: long escape sequences may be split up vim-patch:8.1.1109: deleted file still in list of distributed files vim-patch:8.1.1117: build failure without the +eval feature vim-patch:8.1.1119: no support for Windows on ARM64 vim-patch:8.1.1126: build failure with +terminal but without tgetent vim-patch:8.1.1135: build failure for small version vim-patch:8.1.1138: plugins don't get notified when the popup menu changes |
||
---|---|---|
busted/outputHandlers | ||
ci | ||
cmake | ||
config | ||
contrib | ||
man | ||
runtime | ||
scripts | ||
snap | ||
src | ||
test | ||
third-party | ||
unicode | ||
.clang-format | ||
.editorconfig | ||
.gitignore | ||
.travis.yml | ||
appveyor.yml | ||
BACKERS.md | ||
BSDmakefile | ||
CMakeLists.txt | ||
codecov.yml | ||
CONTRIBUTING.md | ||
ISSUE_TEMPLATE.md | ||
LICENSE | ||
MAINTAIN.md | ||
Makefile | ||
README.md |
Wiki | Documentation | Chat/Discussion | 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 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 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.