Neovim Release Notes

Last updated: Feb 5, 2026

  • Mar 22, 2025
    • Date parsed from source:
      Mar 22, 2025
    • First seen by Releasebot:
      Feb 5, 2026

    Neovim

    Neovim 0.11

    Nvim 0.11 was released.

    Nvim 0.11 was released.

    Newsletter

    Newsletter: https://gpanders.com/blog/whats-new-in-neovim-0-11

    Impressions and takeaways from the “State of Neovim 2024” VimconfLive presentation

    Impressions and takeaways from the “State of Neovim 2024” VimconfLive presentation: https://thenewstack.io/neovims-future-could-have-ai-and-brain-computer-interfaces/

    Features are described here

    Features are described here: https://neovim.io/doc/user/news-0.11.html

    Original source Report a problem
  • May 16, 2024
    • Date parsed from source:
      May 16, 2024
    • First seen by Releasebot:
      Feb 5, 2026
  • All of your release notes in one place

    Join Releasebot and get updates from Neovim and hundreds of other software products.

  • Dec 31, 2022
    • Date parsed from source:
      Dec 31, 2022
    • First seen by Releasebot:
      Feb 5, 2026

    Neovim

    What Neovim shipped in 2022

    Neovim 0.8 delivers a UI overhaul and powerful defaults, from window-local highlighting and a new statuscolumn to in-process Lua plugins and faster filetype detection. Expect faster startup, stronger LSP/treesitter support, and editorconfig by default for a smoother coding flow.

    Neovim is the world’s most-loved editor. That’s just science:
    Here are some highlights from Neovim 2022 (Nvim 0.8) development.

    UI

    Eye candy first!

    ‘winhighlight’ was throughly reimplemented as window-local highlight namespaces. This is backwards-compatible while enabling many new usecases, like window-local syntax highlighting.
    global ‘statusline’ designates one statusline for all windows. Try it:
    :set laststatus=3
    'winbar' is like an extra statusline at the top of each window. It complements laststatus=3:
    set winbar=%f
    set laststatus=3
    'winbar' and 'statusline' gained support for mouse-click regions (as ’tabline’ has had since 2016):
    Experimental zero-height command-line:
    :set cmdheight=0
    The ‘mousescroll’ option controls vertical/horizontal mouse scroll behavior.
    :set mousescroll=ver:5,hor:2
    The new ‘statuscolumn’ option gives full control of the “gutter”, with the same familiar format of ‘statusline’. It even supports click events, just like ‘statusline’, ’tabline’, and ‘winbar’.
    Feature author @luukvbaal also provides a plugin with various pre-packaged ‘statuscolumn’ configs.
    Try it!
    :set rnu nu
    :let &stc='%#NonText#%{&nu?v:lnum:""}%=%{&rnu&&(v:lnum%2)?"\ ".v:relnum:""}%#LineNr#%{&rnu&&(v:lnum%2)!"\ ".v:relnum:""}'
    Marks can save and restore viewport info.
    :set jumpoptions=view
    When you jump around, or switch buffers with ctrl-^, the viewport is restored instead of resetting/recentering vertically.
    vim.ui_attach (experimental) enables in-process Lua plugins to hook into the same events exposed to all Nvim UIs. pic.twitter.com/w9U87jGfIL
    noice.nvim was an early adopter (a matter of days!).

    LSP

    Summary of the history and status of Nvim builtin LSP support.
    Nvim LSP client now supports connecting to language servers by TCP.

    vim.lsp.start({ name = 'godot', cmd = vim.lsp.rpc.connect('127.0.0.1', 6008) })
    

    New core events for LSP: LspAttach, LspDetach. Example:

    vim.api.nvim_create_autocmd('LspAttach', {
    group = yourGroupID,
    callback = function(args)
    local client = vim.lsp.get_client_by_id(args.data.client_id)
    your_callbac_func(client, args.buf)
    end
    }
    
    vim.lsp.get_active_clients() learned to filter (this will be a standard pattern in the Lua stdlib):
    get_active_clients({id=42})
    get_active_clients({bufnr=99})
    get_active_clients({name='tsserver'})
    

    Editor

    Nvim now includes treesitter parsers for C, Lua, and Vimscript. This is a step towards “treesitter by default” for common languages, instead of regex-based vim syntax definitions.
    tree-sitter spellcheck constrained to extmark region.
    The diff-mode “linematch” feature improves rendering of same-line diff changes:

    :set diffopt+=linematch:60
    

    Nvim supports editorconfig, and enables it by default. Nvim detects “.editorconfig” files in your project and applies the settings.
    To opt-out of this feature, add this to your config:

    vim.g.editorconfig_enable = false
    

    Plugins can provide a live preview of user-defined commands.
    This extends the builtin 'inccommand' feature (since 2017), which show the effects of :substitute (:s/foo/bar) as you type.
    Example: The live-command.nvim plugin adds preview for :normal and macros:
    You can now implement ‘inccommand’ preview for any user-defined command. This builds a foundation for live preview of :normal, :global, etc.

    vim.api.nvim_create_user_command(
    'MyCmd',
    my_cmd,
    { …, preview = my_cmd_preview })
    

    The :write command gained the ++p flag, so this creates parent/dir/ if it doesn’t exist:

    :edit parent/dir/file.txt
    :write ++p
    

    Nvim now stores “session data” (shada, persistent undo, …) in $XDG_STATE_HOME (/.local/state) instead of $XDG_CACHE_HOME (/.cache). This change only affects macOS/unix, the Windows locations are unchanged.
    Plugins can also use stdpath('log') to get the recommended location for log files.
    gO in the manpage viewer (:help :Man) shows an outline (table of contents) in the location list. Now the outline also lists the flags.

    Performance

    Filetype detection uses Lua (instead of Vimscript) + “on-demand” strategy => 7x speedup vs the old filetype.vim, saves 5+ ms on startup:
    before:

    9.0ms: sourcing …/runtime/filetype.vim
    

    after:

    1.3ms: sourcing …/runtime/filetype.lua
    
    nvim --startuptime now reports Lua require() times.
    000.010 000.010: --- NVIM STARTING ---
    000.198 000.188: event init
    ...
    026.333 001.109 001.101: require('vim.lsp.protocol')
    028.144 000.423 000.423: require('vim.lsp._snippet')
    ...
    

    A brief summary of Nvim ‘packpath’ improvements:
    Fast, slick folds provided by a plugin.

    Defaults

    ‘mouse’ option is set by default (again). Was disabled since 2017 “until a better approach”. Now we have it:

    mouse=nvi
    

    Type ":" (cmdline-mode) to temporarily disable mouse. Right-click shows a popup menu.
    Try it!

    API

    nvim_parse_cmd() provides the foundation for nvim_cmd([list]) and “user cmd-preview”! And super useful for defining custom cmdline (:) behavior.
    
    :echo nvim_parse_cmd('.,$g/foo/bar', {})
    {
    'cmd': 'global',
    'args': ['/foo/bar'],
    'mods': {…},
    'magic': {'file': v:false, 'bar': v:false}
    }
    

    Use nvim_cmd() to call any Vim legacy command in a structured way, like system([...]).
    Don’t need fnameescape(): special chars are controlled by the magic param.

    nvim_cmd({cmd='vimgrep', args={'/%s/j', '**'}}, {})
    
    nvim-oxi: “first-class Rust bindings (FFI to Nvim C) to the rich API exposed by Neovim.”
    

    Lua

    Check out the vim.fs module for filesystem operations.

    vim.fs.find() is now the canonical way to find “root files”, common for LSP configuration.
    
    vim.cmd is the Lua nvim_cmd wrapper. It supports calling Ex commands as functions instead of strings:
    
    vim.cmd.colorscheme('nightfox')
    

    Lua plugins continue to mature:
    “Lua plugins are basically the same as a vim plugin, except the file extension is .lua instead of .vim and the file contains Lua code instead of Vimscript.”

    Original source Report a problem
  • Apr 26, 2022
    • Date parsed from source:
      Apr 26, 2022
    • First seen by Releasebot:
      Feb 5, 2026

    Neovim

    Neovim News #12 - What's New In Neovim 0.7

    Neovim 0.7 drops with major Lua integration and fresh features plus bug fixes, boosting scripting power and performance. Expect better modifier key handling, a global statusline, improved client-server workflows, and a peek at 0.8 as the roadmap expands.

    Original article: https://gpanders.com/blog/whats-new-in-neovim-0-7

    Neovim 0.7 was just released, bringing with it lots of new features (and of course plenty of bug fixes). You can find the full release notes here, but in this post I’ll cover just a few of the new additions.

    Table of Contents

    • Lua everywhere!
    • Distinguishing modifier keys
    • Global statusline
    • filetype.lua
    • Client-server communication
    • Looking ahead to 0.8

    Lua everywhere!

    Neovim 0.5 saw the introduction of Lua as a first-class citizen in the Neovim ecosystem: Lua could now be used in the user’s init file, plugins, colorschemes, ftplugins, etc. Basically, anywhere that you could use a .vim file, you could now use .lua instead.

    Original source Report a problem
  • Jul 12, 2021
    • Date parsed from source:
      Jul 12, 2021
    • First seen by Releasebot:
      Feb 5, 2026

    Neovim

    Neovim News #11 - The Christmas Issue

    The real 0.5 was the friends we made along the way

    The long-awaited release of Neovim v0.5.0 finally happened on July 2, 2021. It was worth the wait: With over 4000 commits, it is so big that it broke some of the release tooling.

    These notes focus on the most user-visible improvements, of which the biggest are:

    • Lua as a first-class scripting and configuration language,
    • Language server protocol (LSP),
    • Treesitter (early access).

    The LWN article also is a good overview.

    Original source Report a problem
  • Dec 9, 2015
    • Date parsed from source:
      Dec 9, 2015
    • First seen by Releasebot:
      Feb 5, 2026

    Neovim

    Newsletter #6 - Ship it!

    Welcome to the sixth newsletter for Neovim, a project that aims to improve Vim by adding new features and wrap it all in a nice, modern face.

    Introduction

    Hi, this is @tarruda and I will be addressing the Neovim community directly in this newsletter. Other than that, I will try to keep it structured as @jdavis did previously. Let’s get started!

    General News

    0.1 release

    Neovim now has its first public release!

    Original source Report a problem
  • Jan 1, 2001
    • Date parsed from source:
      Jan 1, 2001
    • First seen by Releasebot:
      Feb 5, 2026

This is the end. You've seen all the release notes in this feed!

Related products