Skip to content

Releases: neovim/neovim

Nvim development (prerelease) build

27 Nov 05:12
d460928
Compare
Choose a tag to compare
Pre-release
NVIM v0.11.0-dev-1242+gd460928263
Build type: RelWithDebInfo
LuaJIT 2.1.1731601260

Install

Windows

Zip

  1. Download nvim-win64.zip
  2. Extract the zip
  3. Run nvim.exe on your CLI of choice

MSI

  1. Download nvim-win64.msi
  2. Run the MSI
  3. Run nvim.exe on your CLI of choice

Note: On Windows "Server" you may need to install vcruntime140.dll.

macOS (x86_64)

  1. Download nvim-macos-x86_64.tar.gz
  2. Run xattr -c ./nvim-macos-x86_64.tar.gz (to avoid "unknown developer" warning)
  3. Extract: tar xzvf nvim-macos-x86_64.tar.gz
  4. Run ./nvim-macos-x86_64/bin/nvim

macOS (arm64)

  1. Download nvim-macos-arm64.tar.gz
  2. Run xattr -c ./nvim-macos-arm64.tar.gz (to avoid "unknown developer" warning)
  3. Extract: tar xzvf nvim-macos-arm64.tar.gz
  4. Run ./nvim-macos-arm64/bin/nvim

Linux (x64)

glibc 2.31 or newer is required. Or you may try the (unsupported) builds for older glibc.

AppImage

  1. Download nvim.appimage
  2. Run chmod u+x nvim.appimage && ./nvim.appimage
    • If your system does not have FUSE you can extract the appimage:
      ./nvim.appimage --appimage-extract
      ./squashfs-root/usr/bin/nvim
      

Tarball

  1. Download nvim-linux64.tar.gz
  2. Extract: tar xzvf nvim-linux64.tar.gz
  3. Run ./nvim-linux64/bin/nvim

Other

SHA256 Checksums

b601c5fa7346f1dacbbf2258dff8ff92324f51f710494f5c2d0eee6f8cfab2d9  nvim-linux64.tar.gz
f293e12103fb1e17ea19d9d4ec563a01bf5f1068143534e424c638cee1b36e92  nvim.appimage
de4586ebfe477aa07937e4c53f2e9a4665282a0cdfb5b1a8d61c31e7dd5a5ac0  nvim.appimage.zsync
d73c7410937163fdd1e225be3cc91a465a1845b6857e3379c85e93a18f2335dc  nvim-macos-x86_64.tar.gz
d449e96c6997a1a2e22d939dffe93dc179a9aa5a799b22893121432822ad14de  nvim-macos-arm64.tar.gz
2a0f74b1746bac3a45bf9a438fe52c68bd999dd8e604c2df4e79e6ce3779db30  nvim-win64.zip
14e074e71fadb9338d6756ce1227c3075fb9d60ebbe0170d649ed77dbcdf3bdc  nvim-win64.msi

Nvim 0.10.2

03 Oct 09:02
Compare
Choose a tag to compare

This is a maintenance release

NVIM v0.10.2
Build type: Release
LuaJIT 2.1.1713484068

Features

  • jumplist: Allow opting out of removing unloaded buffers (#30419)

Bug Fixes

  • api: Error properly with invalid field in nvim_open_win (#30078)
  • api: Nvim_buf_get_text() crashes with large negative column #28740
  • api: Fix crash/leak with float title/footer on error (#30543)
  • channel: Handle writing to file instead of pipe (#30520)
  • column: Set signcolumn width after splitting window (#30556)
  • completion: Don't include <Lua function> in -complete= (#30209)
  • decor: Don't use separate DecorSignHighlight for url (#30096)
  • decor: Exclude invalid marks from meta total
  • diagnostics: Don't apply extmarks to invalid lines #29321
  • diff: Use mmfile_t in linematch
  • filetype: Handle .in files with no filename (#30487)
  • float: Properly find last window of tabpage (#30571)
  • health: Fix pyenv root and python exepath detect issue
  • health: Return correct name from 'path2name()'
  • lsp: Don't send foreign diagnostics to servers in buf.code_action (#29501)
  • lsp: Avoid reusing diagnostics from different servers in actions (#30002)
  • lsp: Return call hierarchy item, not the index (#30145)
  • lsp: Handle out-of-bounds character positions #30288
  • lsp: Handle encoding bounds in str_utfindex_enc
  • lsp: Handle nil bytes in strings
  • lua: Ignore stdout and stderr for xdg-open
  • man: Avoid setting v:errmsg (#30052)
  • man: Check if buffer is valid before restoring 'tagfunc' (#30180)
  • regexp: Fix typo in E888 error message (#30161)
  • runtime: Sync bundled treesitter queries
  • runtime: Sync bundled treesitter queries
  • runtime: Add remaining missing commentstrings (#30252)
  • terminal: Interrupt/got_int hangs terminal (#30094)
  • treesitter: Escape things like " in omnifunc results
  • treesitter: Lint top-level anonymous nodes
  • treesitter: EditQuery shows swapfile ATTENTION #30536
  • treesitter: Indent size for inspect_tree #28727
  • tui: Set id parameter in OSC 8 sequences (#29847)
  • tui: Reset active attr ID when OSC 8 sequence is terminated (#29960)
  • version: Return nil with empty string
  • vim.ui.open: Prefer xdg-open on WSL #30302
  • win-msi: Set installer scope to machine #29895
  • window: Respect hide flag of float windows when switching (#30507)
  • window: Making float with title/footer non-float leaks memory (#30551)

Install

Windows

Zip

  1. Download nvim-win64.zip
  2. Extract the zip
  3. Run nvim.exe on your CLI of choice

MSI

  1. Download nvim-win64.msi
  2. Run the MSI
  3. Run nvim.exe on your CLI of choice

macOS (x86_64)

  1. Download nvim-macos-x86_64.tar.gz
  2. Run xattr -c ./nvim-macos-x86_64.tar.gz (to avoid "unknown developer" warning)
  3. Extract: tar xzvf nvim-macos-x86_64.tar.gz
  4. Run ./nvim-macos-x86_64/bin/nvim

macOS (arm64)

  1. Download nvim-macos-arm64.tar.gz
  2. Run xattr -c ./nvim-macos-arm64.tar.gz (to avoid "unknown developer" warning)
  3. Extract: tar xzvf nvim-macos-arm64.tar.gz
  4. Run ./nvim-macos-arm64/bin/nvim

Linux (x64)

Minimum glibc version to run these releases is 2.31. People requiring releases
that work on older glibc versions can find them at
https://github.com/neovim/neovim-releases.

AppImage

  1. Download nvim.appimage
  2. Run chmod u+x nvim.appimage && ./nvim.appimage
    • If your system does not have FUSE you can extract the appimage:
      ./nvim.appimage --appimage-extract
      ./squashfs-root/usr/bin/nvim
      

Tarball

  1. Download nvim-linux64.tar.gz
  2. Extract: tar xzvf nvim-linux64.tar.gz
  3. Run ./nvim-linux64/bin/nvim

Other

SHA256 Checksums

9f696e635d503b844e4e78e88a22bcf512a78f288bf471379afc3d0004e15217  nvim-linux64.tar.gz
970113b5279718126b82adddf3fbed1741db7afabf8a4134635a0d75c9f2c5d8  nvim.appimage
cae0908b60c4b7f27e5864ea9d19a388c4be6a418d4fc2af3fda805fc3cb163b  nvim.appimage.zsync
8be3960d6ed843121a8d00af38d47ef6757824fc05a50a9bc240d678d61a5463  nvim-macos-x86_64.tar.gz
cd3e2e97fee285c41016cece51e67e8174df1dc577b89bc04063b2068ccdaea0  nvim-macos-arm64.tar.gz
3e11c4bed6f3d921af03112c8056740ca6fcacdbf84066328193f058200531c2  nvim-win64.zip
ab303db898b193c8bbcee229052b7eb60da8c2ef852b0746158902860c2f8c48  nvim-win64.msi

Nvim release build

03 Oct 09:02
Compare
Choose a tag to compare
NVIM v0.10.2
Build type: Release
LuaJIT 2.1.1713484068

Install

Windows

Zip

  1. Download nvim-win64.zip
  2. Extract the zip
  3. Run nvim.exe on your CLI of choice

MSI

  1. Download nvim-win64.msi
  2. Run the MSI
  3. Run nvim.exe on your CLI of choice

macOS (x86_64)

  1. Download nvim-macos-x86_64.tar.gz
  2. Run xattr -c ./nvim-macos-x86_64.tar.gz (to avoid "unknown developer" warning)
  3. Extract: tar xzvf nvim-macos-x86_64.tar.gz
  4. Run ./nvim-macos-x86_64/bin/nvim

macOS (arm64)

  1. Download nvim-macos-arm64.tar.gz
  2. Run xattr -c ./nvim-macos-arm64.tar.gz (to avoid "unknown developer" warning)
  3. Extract: tar xzvf nvim-macos-arm64.tar.gz
  4. Run ./nvim-macos-arm64/bin/nvim

Linux (x64)

Minimum glibc version to run these releases is 2.31. People requiring releases
that work on older glibc versions can find them at
https://github.com/neovim/neovim-releases.

AppImage

  1. Download nvim.appimage
  2. Run chmod u+x nvim.appimage && ./nvim.appimage
    • If your system does not have FUSE you can extract the appimage:
      ./nvim.appimage --appimage-extract
      ./squashfs-root/usr/bin/nvim
      

Tarball

  1. Download nvim-linux64.tar.gz
  2. Extract: tar xzvf nvim-linux64.tar.gz
  3. Run ./nvim-linux64/bin/nvim

Other

SHA256 Checksums

9f696e635d503b844e4e78e88a22bcf512a78f288bf471379afc3d0004e15217  nvim-linux64.tar.gz
970113b5279718126b82adddf3fbed1741db7afabf8a4134635a0d75c9f2c5d8  nvim.appimage
cae0908b60c4b7f27e5864ea9d19a388c4be6a418d4fc2af3fda805fc3cb163b  nvim.appimage.zsync
8be3960d6ed843121a8d00af38d47ef6757824fc05a50a9bc240d678d61a5463  nvim-macos-x86_64.tar.gz
cd3e2e97fee285c41016cece51e67e8174df1dc577b89bc04063b2068ccdaea0  nvim-macos-arm64.tar.gz
3e11c4bed6f3d921af03112c8056740ca6fcacdbf84066328193f058200531c2  nvim-win64.zip
ab303db898b193c8bbcee229052b7eb60da8c2ef852b0746158902860c2f8c48  nvim-win64.msi

NVIM 0.10.1

24 Jul 07:32
Compare
Choose a tag to compare
NVIM v0.10.1
Build type: Release
LuaJIT 2.1.1713484068

Changes since 0.10.0:

Features

  • lsp: Update LSP healthcheck format (#28988)

Build System

  • deps: Bump tree-sitter-query to v0.4.0
  • deps: Bump tree-sitter-c to v0.21.3
  • deps: Bump tree-sitter-vimdoc to v3.0.0
  • deps: Drop unused bundled bash, python parsers and queries
  • macos: Disable deduplication in link step
  • "popcount" name conflict on NetBSD #28983
  • Remove -O2 from gen_cflags
  • Reuse code for deps.txt for both deps and main build

Bug Fixes

  • Show swapfile warning as a warning (#28972)
  • Assert failure in VimL expression parser
  • api: Alloc and draw cursor window in nvim__redraw
  • colorscheme: Underline StatusLineNC with 'notermguicolors' #28810
  • column: Crash with 'signcolumn' set to "number" (#29003)
  • column: Clamp line number for legacy signs
  • column: Modifying a sign should update placed signs (#29750)
  • comment: Fall back to using trimmed comment markers (#28950)
  • defaults: Default @/Q broken when 'ignorecase' is set (#29343)
  • drawline: Don't draw beyond end of window (#29035)
  • drawline: Don't draw beyond end of window with 'rnu' (#29406)
  • extmarks: Issues with revalidating marks #28961
  • filetype: Fix typos in filetype detection
  • float: Handle error in win_float_create() (#29742)
  • fs: Make vim.fs.root work for relative paths and unnamed buffers (#28973)
  • health: Broken ruby detect #28804
  • health: Fix fetching url with python in provider health (#29594)
  • input: Handle vim.on_key() properly with ALT and K_SPECIAL (#29677)
  • lsp: Add textDocument/documentLink to capability map (#28838)
  • lsp: Hide layout in codelenses in virtual text (#28794) (#28895)
  • lsp: Detach all clients on_reload to force buf_state reload (#28898)
  • lsp: Trigger LspDetach on buffer delete
  • lsp: Check if buffer was detached in on_init callback (#28942)
  • lsp: Handle nil root_dir in health check (#29010)
  • lsp: Do not detach from buffer if there are uninitialized clients (#29043)
  • lsp: Clear lsp client diagnostics (#29091)
  • lsp: Remove superfluous on_detach callback from semantic tokens module (#29188)
  • lsp: Do not reset buf version when detaching client (#29273)
  • lsp: Avoid vim.keymap.del error when stopping a client (#29478)
  • lsp: Don't show codelens for buffers that don't support it (#29690)
  • lsp: Inlay hints are rendered in the correct order (#29707)
  • lua: Change some vim.fn.expand() to vim.fs.normalize() (#29583)
  • marks: Revalidate marks whose position did not change
  • mouse: Early return when clicking in padded 'statuscolumn' (#29394)
  • move: Half-page scrolling with resized grid at eob (#28821)
  • path: Avoid chdir() when resolving path (#28799)
  • quickfix: Make shortmess+=O work with cmdheight=0 (#29609)
  • runtime: Source c ftplugin properly for cpp on Windows (#29053)
  • runtime: Add commentstring for glsl ftplugin
  • snippet: Don't override unnamed register on tabstop select (#29008)
  • snippet: Cancel snippet session when leaving the buffer (#29044)
  • snippet: Modify base indentation when there's actually whitespace (#29670)
  • tohtml: Replace ipairs with pairs
  • tohtml: Ignore lsp inlay hints
  • tohtml: Show how many warnings are hidden
  • tohtml: Properly handle multiple hl groups #29012
  • tohtml: Extmark text may be out of bounds
  • tohtml: Support ranges again
  • treesitter: Do not modify highlight state for _on_spell_nav
  • treesitter: Ensure syntaxset augroup exists (#29542)
  • treesitter: Display fields for anonymous nodes in :InspectTree
  • treesitter: Recognize aliased parsers in omnifunc, query linter
  • tui: Remove duplicate disabling of synchronized output (#28884)
  • tui: Move $COLORTERM check to _defaults.lua (#29206)
  • tui: Skip TUI in ui_rgb_attached (#29096)
  • ui: Flush ext_cmdline events before doing cmdpreview (#29062)
  • ui: Superfluous showmode / excessive grid_cursor_goto #29089
  • ui: Avoid ambiguity about last chunk when flushing halfway (#29718)
  • version: Fix vim.version().prerelease
  • vim.text: Remove assert from vim.text.hexdecode
  • win-msi: Add bin to PATH per-machine after installation (#29099)

Documentation

  • Update LSP quickstart (#28989)
  • Misc (#29229)
  • Document 'list' behavior when 'listchars' excludes "tab" (#29360)
  • Fix more treesitter parsing errors
  • Misc (#29714)
  • lpeg: Merge upstream changes
  • lsp: Format the handwritten part #29295

Refactor

  • Replace deprecated vim.loop with vim.uv
  • lsp: Reuse buf_detach_client logic in on_detach (#28939) (#29024)
  • path.c: Add nonnull attributes (#28829)
  • tests: Use more global highlight definitions
  • tests: More global highlight definitions

Testing

  • Add a test for #29119
  • Do not set termguicolors in test runner
  • Remove checks for failed tests on Windows
  • Starting and stopping treesitter highlight (#29546)
  • Fix reporting "no flush received" too early (#29735)

Install

Windows

Zip

  1. Download nvim-win64.zip
  2. Extract the zip
  3. Run nvim.exe on your CLI of choice

MSI

  1. Download nvim-win64.msi
  2. Run the MSI
  3. Run nvim.exe on your CLI of choice

macOS (x86_64)

  1. Download nvim-macos-x86_64.tar.gz
  2. Run xattr -c ./nvim-macos-x86_64.tar.gz (to avoid "unknown developer" warning)
  3. Extract: tar xzvf nvim-macos-x86_64.tar.gz
  4. Run ./nvim-macos-x86_64/bin/nvim

macOS (arm64)

  1. Download nvim-macos-arm64.tar.gz
  2. Run xattr -c ./nvim-macos-arm64.tar.gz (to avoid "unknown developer" warning)
  3. Extract: tar xzvf nvim-macos-arm64.tar.gz
  4. Run ./nvim-macos-arm64/bin/nvim

Linux (x64)

Minimum glibc version to run these releases is 2.31. People requiring releases
that work on older glibc versions can find them at
https://github.com/neovim/neovim-releases.

AppImage

  1. Download nvim.appimage
  2. Run chmod u+x nvim.appimage && ./nvim.appimage
    • If your system does not have FUSE you can extract the appimage:
      ./nvim.appimage --appimage-extract
      ./squashfs-root/usr/bin/nvim
      

Tarball

  1. Download nvim-linux64.tar.gz
  2. Extract: tar xzvf nvim-linux64.tar.gz
  3. Run ./nvim-linux64/bin/nvim

Other

SHA256 Checksums

4867de01a17f6083f902f8aa5215b40b0ed3a36e83cc0293de3f11708f1f9793  nvim-linux64.tar.gz
c4762d54cadfd9fa4497c7969197802c9cf9e0d926c39e561f0bd170e36c8aa0  nvim.appimage
f11f2c7ac72c2a6d6dba0817982ee88bd6dbeae0fcccdae62e1ef19e7e6c5632  nvim.appimage.zsync
dd88c86164e6fb34ee364c4a2b42c6a1832890003ae7c9c733032697d92cf7a6  nvim-macos-x86_64.tar.gz
4b322a8da38f0bbdcdcc9a2b224a7b5267f0b1610b7345cb880d803e03bb860b  nvim-macos-arm64.tar.gz
6b9be9acb4f5011f7ab6f7390286a579534e05f0dcf8f37d503c4d40b4adf548  nvim-win64.zip
7e7ba2f0079c48e181bd2253c65b54c4c9169465a1438dd3ddf2939041de6121  nvim-win64.msi

Nvim v0.10.0

16 May 12:42
v0.10.0
Compare
Choose a tag to compare
NVIM v0.10.0
Build type: Release
LuaJIT 2.1.1713484068

Release notes

Install

Windows

Zip

  1. Download nvim-win64.zip
  2. Extract the zip
  3. Run nvim.exe on your CLI of choice

MSI

  1. Download nvim-win64.msi
  2. Run the MSI
  3. Run nvim.exe on your CLI of choice

macOS (x86_64)

  1. Download nvim-macos-x86_64.tar.gz
  2. Run xattr -c ./nvim-macos-x86_64.tar.gz (to avoid "unknown developer" warning)
  3. Extract: tar xzvf nvim-macos-x86_64.tar.gz
  4. Run ./nvim-macos-x86_64/bin/nvim

macOS (arm64)

  1. Download nvim-macos-arm64.tar.gz
  2. Run xattr -c ./nvim-macos-arm64.tar.gz (to avoid "unknown developer" warning)
  3. Extract: tar xzvf nvim-macos-arm64.tar.gz
  4. Run ./nvim-macos-arm64/bin/nvim

Linux (x64)

Minimum glibc version to run these releases is 2.31. People requiring releases
that work on older glibc versions can find them at
https://github.com/neovim/neovim-releases.

AppImage

  1. Download nvim.appimage
  2. Run chmod u+x nvim.appimage && ./nvim.appimage
    • If your system does not have FUSE you can extract the appimage:
      ./nvim.appimage --appimage-extract
      ./squashfs-root/usr/bin/nvim
      

Tarball

  1. Download nvim-linux64.tar.gz
  2. Extract: tar xzvf nvim-linux64.tar.gz
  3. Run ./nvim-linux64/bin/nvim

Other

SHA256 Checksums

be1f0988d0de71c375982b87b86cd28d2bab35ece8285abe3b0aac57604dfc5a  nvim-linux64.tar.gz
6a021e9465fe3d3375e28c3e94c1c2c4f7d1a5a67e4a78cf52d18d77b1471390  nvim.appimage
7e6cefbd1c3f6d76ec1f03170d4308808ce5cd288e0568203ed585a629bc79e7  nvim.appimage.zsync
ac4dc050f83e8537cfad3cbaf61ca4e5870ed30a7d0187cdaa33f8fa421aca1f  nvim-macos-x86_64.tar.gz
e00452adbe1e90fb8c2d9bd41855b3f585bf6e2db31b9c35456d6253b0a152dd  nvim-macos-arm64.tar.gz
e32390f8ed607c9a3749c2faba68e1dd9ecc6fa9a7cae544e4dadd810766d064  nvim-win64.zip
c75e6d029d4487f389c6c16168be62afc04dc7c277f9b6fb24f48b9a69f1bb61  nvim-win64.msi

Nvim 0.9.5

30 Dec 13:31
Compare
Choose a tag to compare
NVIM v0.9.5
Build type: Release
LuaJIT 2.1.1692716794

This is a maintenance release, focusing on bugfixes.
Notably, fixes were made for issues with using and testing Nvim on less common platforms, like big endian platforms.

Release notes

Install

Windows

Zip

  1. Download nvim-win64.zip
  2. Extract the zip
  3. Run nvim-qt.exe

MSI

  1. Download nvim-win64.msi
  2. Run the MSI
  3. Search and run nvim-qt.exe or run nvim.exe on your CLI of choice

macOS

  1. Download nvim-macos.tar.gz
  2. Run xattr -c ./nvim-macos.tar.gz (to avoid "unknown developer" warning)
  3. Extract: tar xzvf nvim-macos.tar.gz
  4. Run ./nvim-macos/bin/nvim

Linux (x64)

AppImage

  1. Download nvim.appimage
  2. Run chmod u+x nvim.appimage && ./nvim.appimage
    • If your system does not have FUSE you can extract the appimage:
      ./nvim.appimage --appimage-extract
      ./squashfs-root/usr/bin/nvim
      

Tarball

  1. Download nvim-linux64.tar.gz
  2. Extract: tar xzvf nvim-linux64.tar.gz
  3. Run ./nvim-linux64/bin/nvim

Other

SHA256 Checksums

44ee395d9b5f8a14be8ec00d3b8ead34e18fe6461e40c9c8c50e6956d643b6ca  nvim-linux64.tar.gz
0c82e5702af7a11fbb916a11b4a82e98928abf8266c74b2030ea740340437bf9  nvim.appimage
e3f3174d75c038915330db86bf685c704cb9be86863ee592a07e21203d32ced2  nvim.appimage.zsync
19d2366e0d6da001583bd0b8a3db59f69ce3dda5fa41f3064c6778cef3edd34c  nvim-macos.tar.gz
de6dc1f0edb45f5f225ee24ce80a4fcbc3a337932037e98ae143975fca2556bf  nvim-win64.zip
006b8578f0b6717bc5a987f12bc0746c61c20e6ba777fde6d4aa53ee54b937cd  nvim-win64.msi

Nvim v0.9.4

09 Oct 20:51
Compare
Choose a tag to compare
NVIM v0.9.4
Build type: Release
LuaJIT 2.1.1692716794

This is a maintenance release, focusing on bug fixes.

Bug Fixes

  • build: Fix exporting symbols on macOS Sonoma
  • api: Handle NUL in nvim_err_write() and nvim_out_write()
  • autocmd: Api functions accepting garbage after event name
  • clang: Null pointer dereference in parse_msgpack
  • clipboard: Don't pass --foreground to wl-copy
  • exception: Remember whether message is multiline
  • float: Update position of anchored windows first
  • float: Fix some other crashes with :unhide or :all
  • lua: Not using global value in vim.opt_global
  • lua: Show error message when failing to set variable
  • mouse: Click on 'statuscolumn' with 'rightleft'
  • path: Accept special characters on Windows
  • provider: Fix python3 provider cannot detect python3.12
  • provider/pythonx: Import the correct module
  • rpc: Fix race condition
  • runtime: Add commentstring for D ftplugin
  • statuscolumn: Update number hl for each screen line
  • terminal: Check terminal size at end of screen update
  • treesitter: Remove more double recursion
  • ui: "resize -1" with cmdheight=0
  • unhide: Close floating windows first
  • unittests: Ignore __s128 and __u128 types in ffi
  • tutor: Clarify the meaning of ✗ and ✓

Build System

  • deps: Bump libmpack-lua to 1.0.11
  • ci: fix mac release for Sonoma

Install

Windows

Zip

  1. Download nvim-win64.zip
  2. Extract the zip
  3. Run nvim-qt.exe

MSI

  1. Download nvim-win64.msi
  2. Run the MSI
  3. Search and run nvim-qt.exe or run nvim.exe on your CLI of choice

macOS

  1. Install libintland gettext (e.g., via brew install gettext)
  2. Download nvim-macos.tar.gz
  3. Run xattr -c ./nvim-macos.tar.gz (to avoid "unknown developer" warning)
  4. Extract: tar xzvf nvim-macos.tar.gz
  5. Run ./nvim-macos/bin/nvim

Linux (x64)

AppImage

  1. Download nvim.appimage
  2. Run chmod u+x nvim.appimage && ./nvim.appimage
    • If your system does not have FUSE you can extract the appimage:
      ./nvim.appimage --appimage-extract
      ./squashfs-root/usr/bin/nvim
      

Tarball

  1. Download nvim-linux64.tar.gz
  2. Extract: tar xzvf nvim-linux64.tar.gz
  3. Run ./nvim-linux64/bin/nvim

Other

SHA256 Checksums

dbf4eae83647ca5c3ce1cd86939542a7b6ae49cd78884f3b4236f4f248e5d447  nvim-linux64.tar.gz
028cfaaf551d64cbb2f39d15363ed78edb01e2673579b48cb694e3604207d656  nvim.appimage
efb32db5b12d5a3db41facbe1a1aaf29228cc60a2a0e090ad24e90dfc2fdca0d  nvim.appimage.zsync
86136acbc959abd164b7c1177707d3a8784a81b158380cf3493b1b5f1d9ed88a  nvim-macos.tar.gz
c2cccfa8d6a116ad3e30334826e05d86ccfa055cf67210b32bc84a8e9d7390bb  nvim-win64.zip
a2b45a463b94de413eec7dcc38dbb0af650dea1db9a78d6b8ff50fdd7f6a47d1  nvim-win64.msi

Nvim 0.9.2

07 Sep 10:35
Compare
Choose a tag to compare

This is a maintenance release, focused on bug fixes and performance improvements.
However, There are included features related to TUI and :terminal.

Bram

Nvim is a fork of the Vim editor, created and developed by Bram Moolenaar.

On August 3, 2023, he passed away at the age of 62. If Vim or Nvim have been
of use to you in your life, read :help Bram and :help Uganda and consider
honoring his memory in a way you see fit.

Changes since 0.9.1

Breaking change

An adjustment was made to the grid_line event as part of the external UI protocol:
the cells array might now end with a [' ', attr, 0] item with a repeat count of
zero. This is needed by the TUI to disambiguate final spaces from a line from just
clearing the line, which will make a difference when copying text using the terminal
emulators' builtin primary selection support.

External UIs can safely ignore such an empty item and most UIs already handle this fine.
But it could break UIs which has an assert to validate the cell count to be bigger
than zero, or similar.

Features

  • tui: Support Super and Meta modifiers
  • terminal: Forward more special keys and modifier-mouse combinations

Bug Fixes

  • lua: Always set arg0 to lua scripts
  • api: Redundant error when using nvim_cmd
  • api, lua: Make blank lines in a message work properly
  • column: Fix bugs related to signs in 'statuscolumn'
  • completion: Don't add backslash in runtime completion
  • diff: Filler lines for hunks bigger than linematch limit
  • edit: Fix K_EVENT interfering with 'digraph'
  • editorconfig: Better validation and error handling
  • events: Don't expand non-file as file name
  • events: Trigger VimResume on next UI request
  • extmarks: Wrong display when changing text with virt_lines
  • folds: Update folds in Insert mode with fdm=indent
  • helptags: Make multibyte help tags work properly
  • highlight: Make CurSearch work properly with 'winhl'
  • inccommand: Fix saving of undo info
  • keycodes: Recognize <t_xx> as a key
  • lsp: Do not assume client capability exists in watchfiles check (#24558)
  • mouse: Handle folded lines with virt_lines attached to line above
  • remote: Make --remote-expr print to stdout
  • remote: Restore previous --remote-expr output formatting
  • spell: Splice extmarks on :spellrepall
  • startup: Don't truncate when printing with -l
  • startup: Run embedded Nvim with real path
  • statusline: Redraw when Visual submode changes
  • statusline: Fill for double-width char after moving items
  • treesitter: Updates to queries and injections
  • treesitter: Fix TSNode:tree() double free
  • ui: Propagate line wrapping state on grid_line events
  • ui: Avoid ambiguity about chunk that clears part of line

Performance

  • extmarks: Avoid unnecessary marktree traversal with folds
  • substitute: Don't reallocate new_start every time

Build System

  • deps: Bump libvterm to 0.3.3
  • deps: Bump LuaJIT to HEAD - 03c31124c
  • deps: Bump libuv to v1.46.0
  • deps: Bump Luv to 1.45.0-0
  • deps: Bump tree-sitter-c to v0.20.5
  • deps: Bump tree-sitter-lua to v0.0.18
NVIM v0.9.2
Build type: Release
LuaJIT 2.1.1692716794

Install

Windows

Zip

  1. Download nvim-win64.zip
  2. Extract the zip
  3. Run nvim-qt.exe

MSI

  1. Download nvim-win64.msi
  2. Run the MSI
  3. Search and run nvim-qt.exe or run nvim.exe on your CLI of choice

macOS

  1. Download nvim-macos.tar.gz
  2. Run xattr -c ./nvim-macos.tar.gz (to avoid "unknown developer" warning)
  3. Extract: tar xzvf nvim-macos.tar.gz
  4. Run ./nvim-macos/bin/nvim

Linux (x64)

AppImage

  1. Download nvim.appimage
  2. Run chmod u+x nvim.appimage && ./nvim.appimage
    • If your system does not have FUSE you can extract the appimage:
      ./nvim.appimage --appimage-extract
      ./squashfs-root/usr/bin/nvim
      

Tarball

  1. Download nvim-linux64.tar.gz
  2. Extract: tar xzvf nvim-linux64.tar.gz
  3. Run ./nvim-linux64/bin/nvim

Other

SHA256 Checksums

fee870b6173f1da134281824a744ada91ef612723bd328683dc941ef16837ec5  nvim-linux64.tar.gz
61950131e18157ab9c7f14131a3dda0aa81f8e4fb47994bf6d8b418d9be6e3c0  nvim.appimage
c6831ac9bb7145e3fdc595cca2a655aad25600a73d4d06750489282d54144c99  nvim.appimage.zsync
da2e852e25325ddc568c9c828060221a03b79b4e9fc9b7eecff9a633830eb923  nvim-macos.tar.gz
73f0b11322a905fbd9c1ba28fca21bacbf9b8547f164d3d5439f39d1c272bf15  nvim-win64.zip
febca24056ec8220e3d748755eeedd282db2dca6a32b6f8e89cf1c39328dcbfd  nvim-win64.msi

Nvim 0.9.1

29 May 11:36
Compare
Choose a tag to compare
NVIM v0.9.1
Build type: Release
LuaJIT 2.1.0-beta3

This is a maintenance release.

  • checkhealth: Add shims for health functions (#23241)
  • Add vim.lsp.buf.formatting_sync() to deprecated.txt
  • treesitter: update parsers and queries
  • api: Extmark highlight groups not always included in details
  • api: Avoid assertion when autocmd group id is 0
  • api: Don't change title when setting buffer in a window
  • api: Nvim_get_hl should return default flag
  • colorscheme: Try .lua files in 'rtp' before .vim files in 'pp'
  • statuscolumn: fix issues when used with virt_lines and signs
  • drawline: Make cursorlineopt=screenline work with resized grid
  • eval: Prevent double-free in garbage collection
  • extmarks: Don't show virt lines for end mark
  • float: Make bufpos work properly with resized parent grid
  • highlight: Add missing g: prefix for colors_name
  • highlight: Combine ColorColumn with low-priority CursorLine
  • highlight: Apply 'winblend' to NormalNC
  • lua: Inspect_pos respect bufnr when get syntax info
  • lua: Vim.split may trim inner empty items
  • man.lua: Don't continue on command error
  • man.lua: Return support of all sections
  • mark: Properly init mark views
  • messages: Ensure msg_grid is at top at more prompt
  • mkspell: Prevent Unicode character overflow
  • mouse: Cmdline click registered as statuscolumn
  • mouse: Fix popup menu position check with winbar
  • normal: Make "g$" work properly with resized grid
  • pum: Show right-click menu above cmdline area
  • pum: Position properly with multigrid and floats
  • pum: Fix issues with with 'rightleft'
  • redo: Make redo of Lua mappings in op-pending mode work
  • redraw: Multibyte characters are wrapped at the end of a line
  • redraw: Overwrite double-width char with virt_text properly
  • ruler: Show ruler of curwin with no statusline in cmdline
  • spell: Extmark with spell=false should disable spell
  • statusline: Also allow right click when 'mousemodel' is "popup*"
  • substitute: Properly check if preview is needed
  • termdebug: Handle partial lines passed to callback
  • tui: Position cursor at bottom-left before stopping
  • tui: Redraw on SIGWINCH even if size didn't change
  • tui: Grid_clear properly clears the screen
  • tui: Fix title restore with title stack or altscreen
  • ui: Send title to newly-attached UI
  • windows: Set stdout to binary mode for --api-info
  • windows: Revert installation context to per-machine
  • build: Include all dependency directories when generating headers

Install

Windows

Zip

  1. Download nvim-win64.zip
  2. Extract the zip
  3. Run nvim-qt.exe

MSI

  1. Download nvim-win64.msi
  2. Run the MSI
  3. Search and run nvim-qt.exe or run nvim.exe on your CLI of choice

macOS

  1. Download nvim-macos.tar.gz
  2. Run xattr -c ./nvim-macos.tar.gz (to avoid "unknown developer" warning)
  3. Extract: tar xzvf nvim-macos.tar.gz
  4. Run ./nvim-macos/bin/nvim

Linux (x64)

AppImage

  1. Download nvim.appimage
  2. Run chmod u+x nvim.appimage && ./nvim.appimage
    • If your system does not have FUSE you can extract the appimage:
      ./nvim.appimage --appimage-extract
      ./squashfs-root/usr/bin/nvim
      

Tarball

  1. Download nvim-linux64.tar.gz
  2. Extract: tar xzvf nvim-linux64.tar.gz
  3. Run ./nvim-linux64/bin/nvim

Other

SHA256 Checksums

6c083017304213c3a3efde8d332a52231b8df8206d35146942097c303ebf93d5  nvim-linux64.tar.gz
262892176e21da0902c4f0b1e027d54d21b4bcae6b0397afccd8a81b476c3055  nvim.appimage
e56f47db50fbe594749e47fcd4aea1242a9bd1f12ea345dc710b4573b04b43a6  nvim.appimage.zsync
6f7de66c494d7b73cdf878f060dedd1b2d66a648a387a245aa2aec76a5b4c777  nvim-macos.tar.gz
af41890b8c14d4ed214a2ef6c1ab8e0be004eac7094d5df1cc4bc17ccf0a13ef  nvim-win64.zip
07a9f278635b91478ced01be1f2818b924b436f1d2e2867c687b7a92b6e702e0  nvim-win64.msi

NVIM 0.9.0

07 Apr 11:45
Compare
Choose a tag to compare
NVIM v0.9.0
Build type: Release
LuaJIT 2.1.0-beta3

Notable changes

For a summary of notable changes, see runtime/doc/news.txt or just :help news within nvim.

Install

Windows

Zip

  1. Download nvim-win64.zip
  2. Extract the zip.
  3. Run nvim-qt.exe

MSI

  1. Download nvim-win64.msi
  2. Run the MSI
  3. Search and run nvim-qt.exe or run nvim.exe on your CLI of choice.

macOS

  1. Download nvim-macos.tar.gz
  2. Run xattr -c ./nvim-macos.tar.gz (to avoid "unknown developer" warning)
  3. Extract: tar xzvf nvim-macos.tar.gz
  4. Run ./nvim-macos/bin/nvim

Linux (x64)

AppImage

  1. Download nvim.appimage
  2. Run chmod u+x nvim.appimage && ./nvim.appimage
    • If your system does not have FUSE you can extract the appimage:
      ./nvim.appimage --appimage-extract
      ./squashfs-root/usr/bin/nvim
      

Tarball

  1. Download nvim-linux64.tar.gz
  2. Extract: tar xzvf nvim-linux64.tar.gz
  3. Run ./nvim-linux64/bin/nvim

Other

SHA256 Checksums

fa93f06bec111fea6f316f186b96e19ba289a2dca2d0731e23597398b7397c8f  nvim-linux64.tar.gz
0e1e6d53c6c8055de23bdb33f60bb64af0baf11390669c1b40ecbbf2c7a34547  nvim.appimage
b53d0e2662a5003e335a410247ff2c1df7cb3c36c00db14e08551437e69bcca3  nvim.appimage.zsync
ba571c320c9ba98f1f78a9656b0b1fd21aa5833a61054f377c15c09366b96aca  nvim-macos.tar.gz
9efe2ff55a13edf32afcfe51194d8e85bb62be7f09ff86384ffb0b8eed2bf716  nvim-win64.zip
adc92c40ea4552dd57898a5f4ec1e635f65ba133340bc9b59c73165cc4cae1bb  nvim-win64.msi

Changes since 0.8.0

Breaking

  • Remove hardcopy
  • Make iconv a non-optional dep
  • Remove has("debug") (#22060)
  • Make libintl a required dependency
  • Rename vim.pretty_print => vim.print
  • Rename sanitizer options from CLANG_* to ENABLE_*
  • Remove the .deb release (#22773)
  • column: Ensure 'statuscolumn' works with virtual and wrapped lines
  • cscope: Remove
  • defaults: Change default 'commentstring' value to empty (#22862)
  • edit: Remove old c implementation of hebrew keymap
  • editorconfig: Change editorconfig_enable to editorconfig
  • exepath: Prefers extensionless for powershell
  • health: Remove deprecated health.lua
  • lsp: Add rule-based sem token highlighting (#22022)
  • lua: Execute Lua with "nvim -l"
  • messages: Graduate the 'msgsep' feature
  • options: Deprecate paste, remove pastetoggle (#22647)
  • rpc: Preseve files when stdio channel is closed (#22137)
  • runtime: Remove filetype.vim (#20428)
  • treesitter: Remove g:ts_highlight_lua (#22257)
  • treesitter: Remove silent option from language.add()
  • treesitter: Consolidate query util functions
  • treesitter: Remove deprecated show_tree func
  • treesitter: Deprecate top level indexes to modules (#22761)
  • treesitter: Rename help parser to vimdoc

Features

  • Added support for @generic to lua2dox.lua
  • Added support for optional params to lua2dox
  • Added support for specifying types for lua2dox
  • Mention ":help news" in intro #20674
  • ":write ++p" creates parent dirs #20835
  • Add vim.secure.read()
  • vim.inspect_pos, vim.show_pos, :Inspect
  • $NVIM_APPNAME #22128
  • Try to recover from missing tempdir #22573
  • Add vim.filetype.get_option()
  • Add vim.treesitter.language.get_filetypes() (#22643)
  • Allow function passed to defaulttable to take an argument (#22839)
  • api: Nvim_select_popupmenu_item support cmdline pum (#20652)
  • api: Add command name to Lua command callback opts
  • api: Show more exception info
  • api: More fields in nvim_list_uis
  • api: Add filetype option nvim_get_option_value
  • api: Add nvim_get_hl (#22693)
  • api: Nvim_exec2(), deprecate nvim_exec() #19032
  • api: Evaluate 'statuscolumn' with nvim_eval_statusline()
  • api: Set statuscolumn line number in nvim_eval_statusline()
  • aucmd_win: Allow crazy things with hidden buffers (#21250)
  • checkhealth: Improve treesitter report
  • checkhealth: Check runtime ($VIMRUNTIME)
  • checkhealth: Use "help" syntax, avoid tabpage #20879
  • clipboard: Copy to system clipboard in tmux when supported (#20936)
  • clipboard: Added wayclip support (#21091)
  • diagnostic: Add suffix option to open_float() (#21130)
  • diagnostic: Add suffix option to virt_text config (#21140)
  • diagnostic: Don't open quickfix/loclist if no diagnostics #21397
  • diagnostic: Vim.diagnostic.is_disabled() #21527
  • diagnostic: Add support for tags
  • docs: Nested lists in HTML, update :help parser
  • docs: Format parameters as a list #20485
  • docs: Update parser, HTML gen #20720
  • docs-html: Try to use tags for ToC headings
  • editorconfig: Add builtin EditorConfig support
  • editorconfig: Add editorconfig syntax file
  • editorconfig: Allow editorconfig to be toggled dynamically
  • exrc: Use vim.secure.read() for 'exrc' option
  • exrc: Support .nvim.lua (#21436)
  • extmarks: Allow preventing spellchecking with spell = false
  • extmarks: Extend nvim_buf_get_extmarks()
  • filetype: Fall back to file extension when matching from hashbang (#22140)
  • float: Open float relative to mouse #21531
  • fs: Add opts argument to vim.fs.dir()
  • gen_help_html.lua: Remove old AWK scripts
  • health: Detect tmux RGB support via client_termfeatures
  • help: Highlighted codeblocks
  • highlight: Add DiagnosticOk (and associated) highlight groups (#21286)
  • highlight: Define the concept of altfont as a (c)term rendering attribute
  • l10n: Update Turkish translations (#20444)
  • l10n: Update zh_CN translations (#21085)
  • lsp: Add bufnr option to lsp.start (#20473)
  • lsp: Support window/showDocument (#19977)
  • lsp: Run handler in coroutine to support async response (#21026)
  • lsp: Support set title in lsp relate floatwindow (#21110)
  • lsp: Support willSave & willSaveWaitUntil capability (#21315)
  • lsp: Initial support for semantic token highlighting
  • lsp: Highlight semantic token modifiers (#21390)
  • lsp: Add function to get semantic tokens at cursor
  • lsp: Add function to clear codelens (#21504)
  • lsp: Show active clients in :checkhealth vim.lsp (#21670)
  • lsp: Add triggerKind option for vim.lsp.buf.code_action (#21905)
  • lsp: Implement workspace/didChangeWatchedFiles (#21293)
  • lsp: Implement workspace/didChangeWatchedFiles (#22405)
  • lsp: Overwrite omnifunc/tagfunc set by ftplugin #22267
  • lsp: Render markdown in docs hover #22766
  • lsp: Create default link from @lsp.type.comment to Comment (#22888)
  • lua: Send "--" literally to Lua "-l" script
  • lua: Exit 1 on Lua "-l" script error
  • lua: Execute stdin ("-") as Lua
  • lua: Store "nvim -l" scriptname in _G.arg[0]
  • lua: Low-level interpreter mode (nvim -ll)
  • lua: Make sure require'bit' always works, even with PUC lua 5.1
  • lua: Add semver api
  • lua: Omnifunc for builting lua interpreter
  • lua: Use vim.empty_dict() for empty return value in new api functions (#22737)
  • lua: Allow :=expr as a shorter version of :lua =expr
  • lua: Add vim.loader
  • lua-api: Avoid unnecessary allocations (#19877)
  • man: Add health check
  • man.lua: Support spaces in manpage names
  • message: Avoid spam on failed os_msg
  • packaging: Add start menu and desktop shortcuts on Windows
  • provider: Add support for Yarn node modules on Windows (#21246)
  • secure: Add :trust command and vim.secure.trust() (#21107)
  • spell: Support nospell in treesitter queries
  • spell: Also source spell/LANG.lua when setting spelllang (#22111)
  • test: Add Lua forms for API methods (#20152)
  • treesitter: Add vim.treesitter.show_tree() (#21322)
  • treesitter: Add 'lang' option to show_tree() (#21341)
  • treesitter: Show filetype associated with parser (#17633)
  • treesitter: Allow capture text to be transformed
  • treesitter: Add metadata option for get_node_text
  • treesitter: Respect metadata[id].range for offset!
  • treesitter: Playground improvements
  • treesitter: Add filetype -> lang API
  • treesitter: Upstream foldexpr from nvim-treesitter
  • treesitter: Expand the API
  • treesitter: Add :InspectTree command (#22477)
  • treesitter: Bundle query parser and queries (#22483)
  • treesitter: Use upstream format for injection queries
  • tui: Run TUI as external process
  • tui: Graduate the +tui feature
  • tui: Support altfont mode in tui.c
  • ui: Add support to display a title in the border of a float (#20184)
  • ui: Add 'statuscolumn' option
  • ui: Restore has('gui_running')
  • ui: Add scroll_delta to win_viewport event #19270
  • vim-patch: Mention original author #20772
  • vim.diff: Allow passing an integer for linematch
  • vim.fs: Pass path to find() predicate, lazy evaluate #22378
  • vim.fs: Improve normalize
  • vim.gsplit: Gain features of vim.split
  • vim.version: More coercion with strict=false
  • web: Syntax highlighting via highlight.js
  • window/ui: Add splitkeep option (#19243)
  • windows: Show icon in terminal titlebar, taskbar #20607

Performance

  • column: Only build fold/sign column when present in 'statuscolumn'
  • completion: Use one call to globpath() for .vim and .lua #21942
  • diagnostic: Use api variable and improve validate (#21111)
  • lsp: Update semantic tokens algorithm for parsing modifiers (#21383)
  • lsp: Only redraw the windows containin...
Read more