Neovim
neovim.io
Neovim
@neovim.io
Neovim is a hyperextensible Vim-based text editor
Ways to support the project:
- https://github.com/sponsors/neovim
- https://store.neovim.io
- Have fun using it and spread the word
#neovim Development News

The 0.12 version will update `:wall` command with a new `++p` option to create parent directories when writing changed buffers. This adds consistency with other "writing" commands like `:wa`, `:x`, and others.

PR:
- github.com/neovim/neovi...
feat: ":wall ++p" creates parent dirs for each buf by bobrippling · Pull Request #36121 · neovim/neovim
:wall ++p will create parent directories if they do not exist, for each modified buffer for history, see #19884 and #20835 :wa ++p added :update ++p works already :x ++p works already
github.com
January 12, 2026 at 5:23 PM
#neovim Development News

The 0.12 version will pass LSP client ID as a filter option to `vim.lsp.buf.code_action()`.

This will allow users to make mapping to invoke code actions from a specific LSP server.

PR:
- github.com/neovim/neovi...
feat(lsp): pass client ID in code action filter by MariaSolOs · Pull Request #36046 · neovim/neovim
Refer to this discussion.
github.com
January 8, 2026 at 2:32 PM
#neovim Development News

The 0.12 version will update 'fillchars' option with a new "foldinner" character.

It can be used as a character to show instead of the numeric foldlevel when it would be repeated in a narrow 'foldcolumn'.

PR (Vim patch):
- github.com/neovim/neovi...
vim-patch:9.1.1819: Cannot configure the inner foldlevel indicator by zeertzjq · Pull Request #36010 · neovim/neovim
Close #21740 vim-patch:9.1.1819: Cannot configure the inner foldlevel indicator Problem: Cannot configure the inner foldlevel indicator for the foldcolumn Solution: Add "foldinner" subop...
github.com
January 5, 2026 at 3:48 PM
Happy New Year, Neovim enjoyers! Let 2026 bring more "out of the box" experience and faster startup time for you!

As last year, here is a thread with #neovim development stats in 2025.
neovim.io Neovim @neovim.io · Dec 31
Happy New Year, everybody! Let's hope that next year will bring us more awesome features and less broken configs!

Here is a small thread with #neovim development stats in 2024.
December 31, 2025 at 2:17 PM
#neovim Development News

The 0.12 version will remove built-in "shellmenu" plugin due to being too narrowly scoped.

PR:
- github.com/neovim/neovi...
refactor(plugins)!: remove shellmenu by yochem · Pull Request #35815 · neovim/neovim
github.com
December 29, 2025 at 2:13 PM
Merry Christmas from your favorite text editor!
December 25, 2025 at 1:32 PM
#neovim Development News

The 0.11.5 version updated `gx` mapping in help files to open tag's documentation in the browser.

It uses this online help pages: neovim.io/doc/user .

PR:
- github.com/neovim/neovi...
Help - Neovim docs
Neovim user documentation
neovim.io
December 22, 2025 at 2:32 PM
#neovim Development News

The 0.12 version will allow `nvim_input_mouse()` method to be called with grid 0 to let Nvim decide the grid.

This should improve experience of developing third party GUIs.

PR:
- github.com/neovim/neovi...
feat(ui): support grid=0 in nvim_input_mouse by fredizzimo · Pull Request #32535 · neovim/neovim
Problem: Multigrid UIs have to find out which window to send the input by using the Neovim focus rules, which are not fully documented. Furthermore, getmousepos() has several problems when multigri...
github.com
December 18, 2025 at 2:49 PM
#neovim Development News

The 0.12 version will have a built-in optional plugin to visualize undotree.

Load it with `packadd nvim.undotree` and execute `:Undotree`.

PR:
- github.com/neovim/neovi...
feat: undotree ui by altermo · Pull Request #35627 · neovim/neovim
Problem Navigating the undo-tree is cumbersome. Solution A plugin for navigating the undo-tree visually.
github.com
December 15, 2025 at 4:54 PM
#neovim Development News

The 0.12 version will improve default value of 'diffopt' option by adding new flags:
- "indent-heuristic" for better handling of indented text.
- "inline:char" for an optimized character-wise diff.

PR:
- github.com/neovim/neovi...
vim-patch:9.1.1753: defaults: 'diffopt' option value can be improved by zeertzjq · Pull Request #35727 · neovim/neovim
vim-patch:9.1.1753: defaults: 'diffopt' option value can be improved Problem: defaults: 'diffopt' option value can be improved Solution: Update diffopt defaults to include "in...
github.com
December 11, 2025 at 6:30 PM
#neovim Development News

The 0.12 version will `CmdlineLeave` set `v:char` to the key that exited the Command line (like , , or ).

PR (Vim patch):
- github.com/neovim/neovi...
vim-patch:9.1.1679: unclear what key causes CmdlineLeave autocommand by zeertzjq · Pull Request #35677 · neovim/neovim
vim-patch:9.1.1679: unclear what key causes CmdlineLeave autocommand Problem: unclear what key causes CmdlineLeave autocommand Solution: Set |v:char| to the key (Girish Palya). related: vim/vim#17...
github.com
December 8, 2025 at 3:40 PM
#neovim Development News

The 0.12 version will update `vim.json.encode()` to support pretty-formatting and key sorting.

PR:
- github.com/neovim/neovi...
- github.com/neovim/neovi...
feat(json): support pretty-formatting with `vim.json.encode()` by skewb1k · Pull Request #35424 · neovim/neovim
Problem: There is no straightforward way to pretty-print objects as JSON. The existing vim.inspect outputs LON. Solution: Introduce an indent option for vim.json.encode() which enables human-readab...
github.com
December 4, 2025 at 3:52 PM
#neovim Development News

The 0.12 version will have `` in Insert mode insert text literally as if it was pasted. Use `=@x` to get the old behavior.

PR:
- github.com/neovim/neovi...
feat(editor)!: insert-mode ctrl-r should work like paste by shadmansaleh · Pull Request #35477 · neovim/neovim
Problem: insert-mode ctrl-r input is treated like raw user input, which almost(?) never useful. This means any newlines in the input are affected by autoindent, etc. This is (1) slow and (2) usuall...
github.com
November 27, 2025 at 4:05 PM
#neovim Development News

The 0.12 version will allow `vim.wait()` to return callback results.

PR:
- github.com/neovim/neovi...
feat(lua): `vim.wait` returns callback results by justinmk · Pull Request #35588 · neovim/neovim
Note: the C code was AI-generated, but seems to work. 👼 Problem The callback passed to vim.wait cannot return results directly, it must set upvalues or globals. local rv1, rv2, rv3 local ok = vim.w...
github.com
November 24, 2025 at 4:01 PM
#neovim Development News

The 0.12 version will support for `textDocument/onTypeFormatting` LSP method. This will allow LSP servers to adjust text during user typing.

PR:
- github.com/neovim/neovi...
feat(lsp): support `textDocument/onTypeFormatting` by ribru17 · Pull Request #34637 · neovim/neovim
Implements on-type formatting using a vim.on_key() approach to listen to typed keys. It will listen to keys on the left hand side of mappings. The on_key callback is cleared when detaching the last...
github.com
November 20, 2025 at 1:15 PM
#neovim Development News

The 0.12 version will add support for progress messages. It is meant as a way to visualize a state of a long running background task.
It also will show terminal's progress bar (if it supports OSC 9;4 sequence).

PRs:
- github.com/neovim/neovi...
- github.com/neovim/neovi...
feat(api): nvim_echo can emit Progress messages/events by shadmansaleh · Pull Request #34846 · neovim/neovim
Working toward #32537 based on a proposal from #32537 (comment) Problem: Nvim does not have a core concept for indicating "progress" of long-running tasks. The LspProgress event is specif...
github.com
November 17, 2025 at 6:28 PM
#neovim Development News

The 0.12 version will add `nvim_ui_send()` function to write arbitrary data to a UI's stdout. It can be used to write escape sequences to the terminal when Nvim is running in the TUI.

PR:
- github.com/neovim/neovi...
feat(tui): add nvim_ui_send by gpanders · Pull Request #35406 · neovim/neovim
This function allows the Nvim core to write arbitrary data to a TTY connected to a UI's stdout. Ref: #35176 (comment) cc @justinmk
github.com
November 13, 2025 at 3:49 PM
#neovim Development News

The 0.12 version will allow highlighting active snippet tabstop (expanded with `vim.snippet.expand()`) with `SnippetTabstopActive` highlight group.

PR:
- github.com/neovim/neovi...
feat(snippet): highlight active tabstop by TheBlob42 · Pull Request #35378 · neovim/neovim
Introduce a new highlight group SnippetTabstopActive for the currently active tabstop. This makes it easier to identify the current text that is changed, especially for directly adjacent tabstops o...
github.com
November 10, 2025 at 2:46 PM
#neovim Development News

The 0.12 version will add `vim.pos` and `vim.range` sets of functions to deal with buffer positions and ranges. Useful for plugin developers. It will probably be experimental.

PR:
- github.com/neovim/neovi...
feat(lua): add `vim.pos`/`vim.range` by ofseed · Pull Request #35109 · neovim/neovim
ref #25509 Currently, the main focus is on defining the vim.pos.Pos and vim.range.Range structures, and moving the logic of the comparing functions in vim.treesitter._range so that we can deprecate...
github.com
November 7, 2025 at 8:40 PM
#neovim Development News

The 0.12 version will add `:connect` command which detaches UI from the current server and attaches to the server specified by the address.

PR:
- github.com/neovim/neovi...
feat(ui): :connect command by siddhantdev · Pull Request #34586 · neovim/neovim
Add the :connect <address> command which connects the currently running TUI to the server running at the given address. Reference issue: :connect to another Nvim server (dynamic detach/reatt...
github.com
November 5, 2025 at 5:14 PM
There is yet another #neovim 0.11.5 maintenance release with new features, performance improvements, and fixes.

Release: github.com/neovim/neovi...
Changelog: github.com/neovim/neovi...
Release Nvim 0.11.5 · neovim/neovim
NVIM v0.11.5 Build type: Release LuaJIT 2.1.1741730670 Release notes Changelog (fixes + features) News (:help news in Nvim) Install Windows Zip Download nvim-win64.zip (or nvim-win-arm64.zip fo...
github.com
November 3, 2025 at 1:10 PM
#neovim Development News

The 0.12 version will update `chdir()` function to allow setting the scope (window, tabpage, global) of the current directory change.

PR (Vim patch):
- github.com/neovim/neovi...
vim-patch:9.1.1605: cannot specify scope for chdir() by zeertzjq · Pull Request #35239 · neovim/neovim
vim-patch:9.1.1605: cannot specify scope for chdir() Problem: Cannot specify scope for chdir() Solution: Add optional scope argument (kuuote) closes: vim/vim#17888 vim/vim@8a65a49 Co-authored-by: ...
github.com
October 31, 2025 at 2:23 PM
#neovim Development News

The 0.12 version will improve built-in fuzzy matching with a new fzy-based implementation.

PR (Vim patch):
- github.com/neovim/neovi...
vim-patch:9.1.{1627,1628} by zeertzjq · Pull Request #35320 · neovim/neovim
Fix #34101 vim-patch:9.1.1627: fuzzy matching can be improved Problem: fuzzy-matching can be improved Solution: Implement a better fuzzy matching algorithm (Girish Palya) Replace fuzzy matching al...
github.com
October 29, 2025 at 4:13 PM
#neovim Development News

The 0.12 version will add many built-in completion improvements with 'autocomplete', 'autocompletedelay', 'autocompletetimeout', and 'completetimeout' options.

PRs (Vim patch):
- github.com/neovim/neovi...
- github.com/neovim/neovi...
- github.com/neovim/neovi...
vim-patch:9.1.1590: cannot perform autocompletion by zeertzjq · Pull Request #35141 · neovim/neovim
vim-patch:9.1.1590: cannot perform autocompletion Problem: cannot perform autocompletion Solution: Add the 'autocomplete' option value (Girish Palya) This change introduces the 'autoco...
github.com
October 27, 2025 at 6:02 PM
#neovim Development News

The 0.12 version will add `vim.list.bisect()` (find position to insert a value in a sorted list while keeping it sorted) and `vim.list.unique()` (removes duplicates in-place) functions.

PR:
- github.com/neovim/neovi...
- github.com/neovim/neovi...
feat(lua): add `vim.list.bisect` by ofseed · Pull Request #35108 · neovim/neovim
Problem Usages of binary search are pretty common. We added vim.list.unique a while ago, so having a function like vim.list.bisect should be appropriate too. This is also for reducing duplicated co...
github.com
October 24, 2025 at 6:34 PM