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
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
#neovim Development News

The 0.12 version will add `vim.diagnostic.status()` helper to get formatted string with diagnostics for the current buffer.

PR:
- github.com/neovim/neovi...
feat(statusline): add buffer diagnostics count by antonk52 · Pull Request #33723 · neovim/neovim
Problem: there is no way to see diagnostic count in stock neovim Solution: add buffer diagnostic count to the default statusline Context: There is interest in trying this out. I tried to keep the i...
github.com
October 22, 2025 at 1:25 PM
#neovim Development News

The 0.12 version will update how trusted files are enabled: no "(a)llow" choice in favor of "(v)iew" and explicit `:trust`. This is aimed to improve overall security of your Neovim setup.

PR:
- github.com/neovim/neovi...
fix(vim.secure): remove "allow" from choices of `vim.secure.read` by nyngwang · Pull Request #35069 · neovim/neovim
Problem: It's relatively easy to mispress key a to (a)llow arbitrary execution of exrc files. See also discuss #35050. Solution: For exrc files, remove "allow" from choices of vim.se...
github.com
October 20, 2025 at 2:55 PM
#neovim Development News

The 0.12 version will add `wildtrigger()` function to trigger command-line wildcard expansion. This offers more flexible solutions to implementing autocompletion-like functionality in Command line.

PR (Vim patch):
- github.com/neovim/neovi...
vim-patch:9.1.1576: cannot easily trigger wildcard expansion by zeertzjq · Pull Request #35022 · neovim/neovim
vim-patch:9.1.1576: cannot easily trigger wildcard expansion Problem: cannot easily trigger wildcard expansion Solution: Introduce wildtrigger() function (Girish Palya) This PR introduces a new wi...
github.com
October 17, 2025 at 4:03 PM
#neovim Development News

The 0.12 version will add support for `textDocument/linkedEditingRange` request. This will allow LSP server to update related regions when one has changed (like HTML closing tag when editing an opening one).

PR:
- github.com/neovim/neovi...
feat(lsp): support linked editing ranges by ribru17 · Pull Request #34388 · neovim/neovim
See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocument_linkedEditingRange. Maybe some LSP experts can help point me in the right direction with...
github.com
October 15, 2025 at 4:52 PM
#neovim Development News

The 0.12 version will update `:retab` function with a new option `-indentonly` parameter. It will allow to adjust only leading and not all whitespace.

PR (Vim patch):
- github.com/neovim/neovi...
vim-patch:9.1.1544: :retab cannot be limited to indentation only by zeertzjq · Pull Request #34939 · neovim/neovim
vim-patch:9.1.1544: :retab cannot be limited to indentation only Problem: :retab cannot be limited to indentation only Solution: add the optional -indentonly parameter (Hirohito Higashi) closes: v...
github.com
October 13, 2025 at 3:44 PM