Justin M. Keyes e8b87a554f NVIM v0.11.6
Following is a list of fix/feature commits in this release.
See `:help news` in Nvim for release notes.

FEATURES
--------------------------------------------------------------------------------
- b92e92b20d lsp: support auto-force escalation in client stop #36430
- 808d973fb0 lsp: warn about unknown filetype #36910

FIXES
--------------------------------------------------------------------------------
- 5e7af0ba01 :ls: check for finished terminal properly (#37303)
- 6ce7b9b851 api: autocmds mess up nvim_get_option_value's dummy buffer
- c124594b22 api: buffer overflow in nvim_buf_get_extmarks overlap #37184
- 7f51431c12 api: crash when moving curwin to other tabpage #35679
- 7896fe2dea api: do not allow opening float to closing buffer
- 91ebbc6c4e api: ignore split_disallowed when opening a float
- 10a1df2789 api: nvim_get_option_value dummy buffer crashes
- da825e5541 api: on_bytes gets stale data on :substitute #36487
- a9ffdca528 api: open_win leak from naughty autocommands
- 92849eacff api: parse_expression crash with ident and curly
- 1db945b584 api: parse_expression crash with unopened ] and node
- 79b67ce331 appimage: wrong $ARCH used by linuxdeploy #36712
- 46011a4e87 autocmd: fire TabClosed after freeing tab page
- a512d43716 autocmd: heap UAF with :bwipe in Syntax autocmd
- bea500dbeb autocmd: parsing of comma-separated buflocal patterns
- 648cf4e586 autocmd: skip empty comma-separated patterns properly
- fa24e045e9 buffer: defer w_buffer clearing to prevent dict watcher crash #36748
- 9fb49aacde buffer: don't allow changedtick watcher to delete buffer (#36764)
- cae3c838a7 buffer: don't reuse 1-line terminal buffer (#37261)
- 6f84ea7c66 buffer: switching buffer should respect jumpoptions+=view (#36969)
- 16ca7ceaed build: disable problematic marktree assert in RelWithDebInfo builds
- c469cba162 channel: unreference list after callback finishes (#37358)
- 43f5297fe3 clipboard: tmux clipboard data may be stale #36787
- 0358f37e3d clipboard: use tmux only in a tmux session (#36603)
- 7e99466a89 eval: 0 should mean current tabpage in gettabvar() (#36891)
- 656ff4c438 events: crash on WinScrolled #35995
- 63c5a101af install: only install "tee" on Windows #36629
- e8c21a8b51 langmap: assert failure on mapping to char >= 256 (#37291)
- 890c257194 lsp: check `nvim.lsp.enable` before `doautoall` #36518
- 275c769f01 lua: don't remove first char of non-file stacktrace source (#37008)
- 83c589d95f lua: relax `vim.wait()` timeout validation (#36907)
- bd2317f17f lua: separate vim.{g,b,w,t} types #37081
- f21c169a02 lua: vim._with() doesn't save boolean options properly (#37354)
- 9acbf5102f lua: vim.wait(math.huge) fails #36885
- 5143419e22 man.lua: :Man slow/hangs if MANPAGER is set #36689
- df9452ea9e man.lua: show_toc condition may cause infinite loop #36979
- 124c18261c marks: wrong line('w$', win) with conceal_lines (#37047)
- 6ef1b655fe normal: assertion failure with "gk" in narrow window (#37444)
- 5ca2eb5e48 remote: remote-ui connect timeout on slow networks #36800
- 2a3cd8dc80 rpc: don't overwrite already received results on error (#37339)
- e0fdfd3d4b scripts: release.sh
- ba600c495f session: window sizes not stored with float windows (#37344)
- 53090ab6a8 statusline: scope truncation bookkeeping
- 800118e204 terminal: :edit should respect 'bufhidden' with exited job (#37301)
- 4b41c284ed terminal: <Ignore> should be no-op (#37494)
- 074d342f63 terminal: avoid multiple terminals writing to same buffer (#37219)
- 2cc78732fc terminal: crash when TermClose deletes other buffers
- ea871923eb terminal: crash when TermClose switches back to terminal buffer
- ceed171485 terminal: crash with race between buffer close and OSC 2 (#37225)
- acc46e1dd7 terminal: handle closing terminal with pending TermRequest (#37227)
- bb31e7b345 terminal: inconsistent mode change when switching buffer (#37215)
- 40c974e689 terminal: restore options properly when switching buffer (#37485)
- 46f569a890 treesitter: use metadata in :EditQuery captures #37116
- 076f7994be trust: :trust command on Windows #36509
- d997c8e344 tutor: escape tutor filename #36539
- fcd0517dee ui.open: use "start" instead of deprecated "rundll32" #36731
- 6a507bad18 vim.fs: abspath(".") returns "/…/." (#36584)
- d974c684da vim.fs: root() should always return absolute path #36466
- 91fd4d127e vim.loader: randomized AppImage path pollutes luac cache #35636
- 45cda1bcf4 vim.loader: randomized AppImage path pollutes luac cache #36944
- d9631c7678 window: crash closing only non-float if autocmds :tabonly (#37218)
- f7e2554bfb window: crash closing split if autocmds close other splits (#37233)
- 7a9bced071 window: disallow closing autocmd window in other tabpage
- 88619e1aaf window: handle closing the only non-float in other tabpage
- d38ba7e2b8 window: restore b_nwindows if win_close_othertab keeps window
- 6338d2d54b window: win_move_after UAF from naughty autocmds (#37065)
- fac7c10eb8 windows: set manifest resource ID to 1 in nvim.rc for MinGW (#36611)

BUILD
--------------------------------------------------------------------------------
- d0ed06dcea haiku os support #36639
- a94647bb08 build(windows): restore "tee" on Windows #36627
- 1f93acc293 build(windows): vendor xxd.c (#36755)

REVERTED CHANGES
--------------------------------------------------------------------------------
- ae25f6942e fix: vim.lsp.omnifunc should not throw away other items

VIM PATCHES
--------------------------------------------------------------------------------
- b3eab00e55 229f79c: runtime(yaml): fix wrong order of undo_ftplugin suboptions
- 89f8e97099 3a324c8: runtime(doc): Fix typo in syntax.txt (#37522)
- d1cd79a4b6 64799a5: runtime(doc): clarify the behavior of CTRL-Z
- 0978d83c6e 7bc9880: runtime(make): do not automatically indent after a special target
- 781da755e8 8.1.0753: printf format not checked for semsg() (#37248)
- 44eae48b75 9.1.0893: No test that undofile format does not regress (#37193)
- 9a50420461 9.1.1872: Cmdline history not updated when mapping <Up> and <CR> (#36334)
- d1604e0f38 9.1.1969: Wrong cursor position after formatting with long 'formatprg' (#36918)
- fda8d2c717 9.1.2028: [security]: Buffer-overflow with incomplete multi-byte chars (#37133)
- f96e401b7e 9.1.2055: Division by zero in :file after failing to wipe buffer (#37268)
- f8961c3878 9.1.2058: b_locked_split is not checked for :sbuffer
- 9f2b991331 9.1.2066: :wqall! doesn't close a terminal like :qall! does (#37314)
- b1fa8f1430 9.1.2068: :bd/bw may try to switch to a closing buffer
- 600d9f35a4 9.1.2086: Memory leak when skipping invalid literal dict
- 0cc15be15d 9.1.2087: Crash when using :tabonly in BufUnload
- d052d22979 9.1.2090: Last buffer not freed with EXITFREE
- 537e8d69f8 9.1.2095: :wqall! doesn't quit when using :quit in BufWritePost
- 0b1f5a1d60 9.1.2105: tests: not enough tests for using plain_vgetc() (#37521)
- 0da1e4b1c5 9.1.2107: :normal may change cmdline history (#37523)
- a66fce6fab 98a0cbf: patch 9.1.1971: crash with invalid positional argument 0 in printf() (#36919)
- 85404d18fe eb732ed: runtime(doc): Wrap overlength lines in uganda.txt (#36550)
- a93b5a7104 fe8c8b1: runtime(doc): fix outdated :function help
- 0706c55ab1 partial:9.1.1955: sort() does not handle large numbers correctly (#36840)
2026-01-26 16:27:53 +01:00
2026-01-26 16:27:53 +01:00
2025-03-17 12:31:53 +01:00
2019-11-10 22:50:24 -08:00
2024-06-07 10:55:14 +08:00
2025-11-26 21:47:10 +08:00
2026-01-26 16:27:53 +01:00
2025-01-11 10:34:12 +01:00
2025-11-26 21:47:10 +08:00
2023-08-13 13:25:10 +01:00
2025-03-15 15:00:44 +01:00
2025-02-23 11:38:29 +01:00

Neovim

Documentation | Chat

Coverity Scan analysis Packages Debian CI Downloads

Neovim is a project that seeks to aggressively refactor Vim in order to:

See the Introduction wiki page and Roadmap for more information.

Features

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 (or cmake -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.
Description
Vim-fork focused on extensibility and usability
Readme 461 MiB
Languages
Vim Script 40.7%
Lua 31.1%
C 27.3%
CMake 0.4%
Zig 0.2%
Other 0.1%