![github-actions[bot]](/assets/img/avatar_default.png)
vim-patch:8.1.1083: MS-Windows: hang when opening a file on network share vim-patch:8.1.1527: when moving popup window over the cmdline it is not redrawn vim-patch:8.1.1550: when a popup has left padding text may be cut off vim-patch:8.1.1562: popup window not always redrawn after popup_setoptions() vim-patch:8.1.1575: callbacks may be garbage collected vim-patch:8.1.1596: when resizing the screen may draw popup in wrong position vim-patch:8.1.1602: popup window cannot overflow on the left or right vim-patch:8.1.1615: crash when passing buffer number to popup_create() vim-patch:8.1.1617: no test for popup window with mask and position fixed vim-patch:8.1.1620: no test for popup window with border and mask vim-patch:8.1.1622: wrong width if displaying a lot of lines in a popup window vim-patch:8.1.1636: crash when popup has fitting scrollbar vim-patch:8.1.1646: build failure vim-patch:8.1.1649: Illegal memory access when closing popup window vim-patch:8.1.1656: popup window width is wrong when using Tabs vim-patch:8.1.1665: crash when popup window with mask is below the screen vim-patch:8.1.1666: click in popup window scrollbar with border doesn't scroll vim-patch:8.1.1676: "maxwidth" of popup window does not always work properly vim-patch:8.1.1678: using popup_menu() does not scroll to show the selected line vim-patch:8.1.1707: Coverity warns for possibly using a NULL pointer vim-patch:8.1.1709: Coverity warns for possibly using a NULL pointer vim-patch:8.1.1719: popup too wide when 'showbreak' is set vim-patch:8.1.1733: the man ftplugin leaves an empty buffer behind vim-patch:8.1.1753: use of popup window mask is inefficient vim-patch:8.1.1754: build failure vim-patch:8.1.1755: leaking memory when using a popup window mask vim-patch:8.1.1768: man plugin changes setting in current window vim-patch:8.1.1773: the preview popup window may be too far to the right vim-patch:8.1.1778: not showing the popup window right border is confusing vim-patch:8.1.1779: not showing the popup window right border is confusing vim-patch:8.1.1786: double click in popup scrollbar starts selection vim-patch:8.1.1789: cannot see file name of preview popup window vim-patch:8.1.1814: a long title in a popup window overflows vim-patch:8.1.1845: may use NULL pointer when running out of memory vim-patch:8.1.1850: focus may remain in popup window vim-patch:8.1.1874: modeless selection in popup window overlaps scrollbar vim-patch:8.1.1902: cannot have an info popup without a border vim-patch:8.1.1907: wrong position for info popup with scrollbar on the left vim-patch:8.1.1917: non-current window is not redrawn when moving popup vim-patch:8.1.1918: redrawing popups is inefficient vim-patch:8.1.1929: no tests for text property popup window vim-patch:8.1.1934: not enough tests for text property popup window vim-patch:8.1.1936: not enough tests for text property popup window vim-patch:8.1.1945: popup window "firstline" cannot be reset vim-patch:8.1.1959: when using "firstline" in popup window text may jump vim-patch:8.1.1963: popup window filter may be called recursively vim-patch:8.1.1997: no redraw after a popup window filter is invoked vim-patch:8.1.1998: redraw even when no popup window filter was invoked vim-patch:8.1.2009: cursorline highlighting not updated in popup window vim-patch:8.1.2032: scrollbar thumb wrong in popup window vim-patch:8.1.2109: popup_getoptions() hangs with tab-local popup vim-patch:8.1.2110: CTRL-C closes two popups instead of one vim-patch:8.1.2114: when a popup is closed with CTRL-C the callback aborts vim-patch:8.1.2164: stuck when using "j" in a popupwin with popup_filter_menu vim-patch:8.1.2210: using negative offset for popup_create() does not work vim-patch:8.1.2213: popup_textprop tests fail vim-patch:8.1.2240: popup window width changes when scrolling vim-patch:8.1.2277: terminal window is not updated when info popup changes vim-patch:8.1.2286: using border highlight in popup window leaks memory vim-patch:8.1.2287: using EndOfBuffer highlight in popup does not look good vim-patch:8.1.2288: not using all space when popup with "topleft" flips to above vim-patch:8.1.2300: redraw breaks going through list of popup windows vim-patch:8.1.2307: positioning popup doesn't work for buffer-local textprop vim-patch:8.1.2334: possible NULL pointer dereference in popup_locate() vim-patch:8.1.2420: crash when calling popup_close() in win_execute() vim-patch:8.2.0826: Vim9: crash in :defcompile vim-patch:8.2.1207: Vim9: crash in expr test when run in the GUI vim-patch:8.2.2018: Vim9: script variable not found from lambda vim-patch:9.0.0133: virtual text after line moves to joined line
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 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.
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 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:
https://iccf-holland.org/
https://www.vim.org/iccf/
https://www.iccf.nl/
You can also sponsor the development of Vim. Vim sponsors can vote for
features. The money goes to Uganda anyway.