Releases59
Frequency1 month 1 week
Last Release
## Features ### Extensible - API is first-class: discoverable, versioned, documented. - MessagePack structured communication enables extensions in any language. - Remote plugins run as co-processes, safely and asynchronously. - GUIs, IDEs, web browsers can --embed Neovim as an editor or script host. - Lua plugins are easy to create just like Vimscript plugins. Your config can live in init.lua! - AST-producing parsing engine enables faster, more accurate syntax highlighting, code navigation, refactoring, text objects, and motions. ### Usable - Strong defaults including a unique, minimalist colorscheme. - Builtin LSP client for semantic code inspection and refactoring (go-to definition, "find references", format, ...). - Client-server architecture allows you to detach the UI and keep the editor session running (like tmux). Attach multiple UIs to any Nvim session. - Works the same everywhere: one build-type, one command. - Modern terminal features such as cursor styling, focus events, bracketed paste. - Builtin `:terminal` set the standard for "TTY as a basic component". ### Drop-in Vim - Fully compatible with Vim's editing model and Vimscript v1. - Start with :help nvim-from-vim if you already use Vim. If not, try :Tutor. ### Following HEAD - If you want to stay up to date with the latest development you can install neovim using the `--pre` option. - For example: `choco install neovim --pre`. - Which will get you the latest _nightly_ builds for windows. ### Package Parameters - `/NoNeovimOnPath`: Neovim binary folder will not be added to the path. - Optional parameter. - Default behavior is that Neovim binary will be added to the users path. - If this is used together with `/NeovimOnPathForAll`, this takes precedence and the path will not be modified. - Example: `choco install neovim --params "/NoNeovimOnPath"` - `/NeovimOnPathForAll`: Neovim binary folder will be added to the machine path. - Optional parameter. - Default behavior is that Neovim binary will be added only to the users path. - Example: `choco install neovim --params "/NeovimOnPathForAll"` **Note:** ~~To force the installation of x32 version, use the `--x86` argument with `choco install`.~~ As of [#16317](https://github.com/neovim/neovim/pull/16317) Win32 builds and releases were removed

CVE History

CVEAffectedPublishedCVSS v3CVSS v2
<= 0.12.26.6 MEDIUM

Vim is an open source, command line text editor. Prior to version 9.2.0450, a heap buffer overflow exists in read_compound() in src/spellfile.c when loading a crafted spell file (.spl) with UTF-8 encoding active. An attacker-controlled length field in the spell file's compound section overflows a 32-bit signed integer multiplication, causing a small buffer to be allocated for a write loop that runs many iterations, overflowing the heap. Because the 'spelllang' option can be set from a modeline, a text file modeline can trigger spell file loading if a malicious .spl file has been planted on the runtimepath. This issue has been patched in version 9.2.0450.

<= 0.11.66.6 MEDIUM

Vim is an open source, command line text editor. Prior to version 9.1.2132, a heap buffer overflow vulnerability exists in Vim's tag file resolution logic when processing the 'helpfile' option. The vulnerability is located in the get_tagfname() function in src/tag.c. When processing help file tags, Vim copies the user-controlled 'helpfile' option value into a fixed-size heap buffer of MAXPATHL + 1 bytes (typically 4097 bytes) using an unsafe STRCPY() operation without any bounds checking. This issue has been patched in version 9.1.2132.

<= 0.10.44.2 MEDIUM

When switching to other buffers using the :all command and visual mode still being active, this may cause a heap-buffer overflow, because Vim does not properly end visual mode and therefore may try to access beyond the end of a line in a buffer. In Patch 9.1.1003 Vim will correctly reset the visual mode before opening other windows and buffers and therefore fix this bug. In addition it does verify that it won't try to access a position if the position is greater than the corresponding buffer line. Impact is medium since the user must have switched on visual mode when executing the :all ex command. The Vim project would like to thank github user gandalf4a for reporting this issue. The issue has been fixed as of Vim patch v9.1.1003

<= 0.10.44.5 MEDIUM

The UNIX editor Vim prior to version 9.1.0678 has a use-after-free error in argument list handling. When adding a new file to the argument list, this triggers `Buf*` autocommands. If in such an autocommand the buffer that was just opened is closed (including the window where it is shown), this causes the window structure to be freed which contains a reference to the argument list that we are actually modifying. Once the autocommands are completed, the references to the window and argument list are no longer valid and as such cause an use-after-free. Impact is low since the user must either intentionally add some unusual autocommands that wipe a buffer during creation (either manually or by sourcing a malicious plugin), but it will crash Vim. The issue has been fixed as of Vim patch v9.1.0678.

< 0.7.07.8 HIGH6.8 MEDIUM

vim is vulnerable to Heap-based Buffer Overflow