Neovim Versions Save

Vim-fork focused on extensibility and usability

v0.8.0

1 year ago
NVIM v0.8.0
Build type: Release
LuaJIT 2.1.0-beta3

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)

Tarball

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

Debian Package

  1. Download nvim-linux64.deb
  2. Install the package using sudo apt install ./nvim-linux64.deb
  3. Run nvim

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
      

Other

SHA256 Checksums

1af27471f76f1b4f7ad6563c863a4a78117f0515e3390ee4d911132970517fa7  nvim-linux64.tar.gz
215c88e8cf3fefcd02ef45dc8cdad563e1c601faeddca41565b6b852fceb26b5  nvim-linux64.deb
e1e6512bd5d9081d293ac7d1283166e09cbb32d15063853ade4b03719919e22f  nvim.appimage
c36b78021333db3c5d312b83ff1634997c1085473e2cedce3862786eddae481d  nvim.appimage.zsync
abe0b0c1ca46b7d05e689d4791055a6dbbf2394cb53a6a8d8274813e6762c1f1  nvim-macos.tar.gz
c52e0a93e8bd7e0192c3fe4552d8b0fb66fc8e08b6949e92340cccc4fa3a9bd0  nvim-win64.zip
1f38694a43c9fb33b045407edaab793e4a4f6da6751ec6f09f6fd96da4fba786  nvim-win64.msi

Breaking changes

  • Remove 'insertmode' 'remap' and 'terse' options
  • highlight: Rename attributes to match Vim (#19159)
  • highlight: Error on invalid names and allow '.' and '@'
  • terminal: Drop winpty, require Windows 10 (version 1809 or later) #18253
  • treesitter: Use @foo.bar style highlight groups
  • treesitter: Do not merge queries by default (#20105)

Features

  • runtime: Enable filetype.lua by default (#19216)
  • Add undo!
  • Add "prerelease" to version dict
  • Click support for 'statusline', 'winbar' #18650
  • Add preview functionality to user commands
  • allow Cmdheight=0 (EXPERIMENTAL) #16251
  • Stdpath('run'), /tmp/nvim.user/ #18993
  • Add 'mousescroll' option (#12355)
  • Allow :wincmd to accept a count (#19815)
  • Multibuffer preview support for inccommand
  • Man: Port to Lua (#19912)
  • api: Ui options relevant for remote TUI
  • api: Add nvim_parse_cmd And nvim_cmd
  • api: Support handling stdin stream in remote ui
  • api: Add group_name to nvim_get_autocmds
  • api: Enable nvim_exec_autocmds to pass arbitrary data (#18613)
  • api: Support pattern array for exec_autocmds
  • api: Add unsilent to command APIs
  • api: Add replace_keycodes to nvim_set_keymap (#19598)
  • api: Add support for :horizontal modifier
  • api: Add "move" to nvim_input_mouse
  • api/ui: "ui_watched" option for ui-side extmarks
  • build: Add_glob_target runs only on changed files #19070
  • checkhealth: Check for slow shell #17829
  • defaults: Session data in $XDG_STATE_HOME #15583
  • defaults: Search selection by * and # in visual mode (#18538)
  • defaults: Nnoremap & :&&<CR> #19365
  • defaults: enable mouse by default (set mouse=nvi) #19290
  • diagnostic: Pass diagnostics as data to DiagnosticChanged autocmd (#20173)
  • docs: Gen_help_html.lua
  • edit: Insert an unsimplified key using CTRL-SHIFT-V
  • treesitter: Full support for spelling
  • filetype: Convert more patterns to filetype.lua
  • filetype: Remove side effects from vim.filetype.match (#18894)
  • filetype: Expand environment variables in filetype patterns (#20145)
  • fs: Add vim.fs functions: parents() dirname() basename() dir() find() normalize()
  • highlight: Implement CurSearch highlight
  • highlight: Support scoped @spam.eggs.baked_beans groups
  • input: Delay all simplifications
  • l10n: Turkish translations #19441
  • l10n: Improve zh_CN translations (#19483)
  • lsp: Remove capabilities sanitization (#17814)
  • lsp: Show feedback on empty hover response (#18308)
  • lsp: Options to filter and auto-apply code actions (#18221)
  • lsp: Add vim.lsp.buf.format (#18193)
  • lsp: Add logging level "OFF" (#18379)
  • lsp: Add LspAttach and LspDetach autocommands
  • lsp: Add filter to vim.lsp.get_active_clients()
  • lsp: Option to reuse_win for jump actions (#18577)
  • lsp: Add a start function (#18631)
  • lsp: Send didChangeConfiguration after init (#18847)
  • lsp: Defaults: tagfunc, omnifunc, formatexpr (#19003, #19677)
  • lsp: Allow passing custom list handler to LSP functions that return lists (#19213)
  • lsp: Provide feedback if server can't compute rename result (#19546)
  • lsp: Add range option to code_action; deprecate range_code_action (#19551)
  • lsp: Disable exit_timeout by default (#19672)
  • lsp: Add tcp support
  • lua: Vim.deprecate() #18320
  • lua: Vim.cmd() with kwargs acts like nvim_cmd() #18523
  • lua: Allow some vim script functions to run in fast callbacks
  • lua: Measure require in --startuptime
  • lua: Allow vim.cmd to be indexed (#19238)
  • lua: Print source locations of lua callbacks (#19597)
  • lua: Add vim.iconv (#18286)
  • lua: Vim.ui_attach to get ui events from lua (EXPERIMENTAL)
  • man.vim: List command flags in "gO" outline #17558
  • mappings: Do not replace existing mapping for simplified form
  • mappings: Allow special keys and modifiers in <Cmd> mapping
  • mapset: Support restoring "replace_keycodes" and "desc"
  • mapset: Support restoring Lua callback (#20024)
  • marks: Restore viewport on jump #15831
  • nvim_create_user_command: Pass structured modifiers to commands
  • pum: Pretend 'mousemoveevent' is set when showing right-click menu
  • server: Set $NVIM, unset $NVIM_LISTEN_ADDRESS #11009
  • server: Instance "name", store pipes in stdpath(state)
  • term: Add support for libvterm >= 0.2
  • terminal: Implement <c-> for terminal mode
  • terminal: Recognize underdouble and undercurl
  • terminfo: Bump built-in terminfo entries (#18570)
  • treesitter: Allow customizing language symbol name
  • treesitter: Add ability to retreive a tree/node given a range
  • treesitter: Upstream node methods from nvim-treesitter
  • treesitter: Include language in invalid query error (#14053)
  • treesitter: Bundle Lua parser and queries
  • treesitter: Add viml parser and queries
  • treesitter: Add injections
  • treesitter: Add vim.treesitter.start(), enable for Lua
  • treesitter: Bundle :help parser and queries
  • tui: Query terminal for CSI u support (#18181)
  • tui: Recognize keypad keys when using kitty keyboard protocol
  • tui: Try terminfo for [re]set_cursor_color OSC #19255
  • tui: Allow grid and host to disagree on ambiguous-width chars (#19686)
  • tui: Recognize sidescroll events (#19992)
  • tui: Support 'mousemoveevent'
  • ui: Add 'winbar'
  • ui: Clear message history explicitly with msg_history_clear event
  • ui: Make right-click menu work properly with ext_multigrid
  • ui: Allow to set the highlight namespace per window
  • ui: Use msg_grid based implementation for cmdheight=0
  • ui-ext: Make 'mousemoveevent' a ui_option
  • eval: Make Lua Funcref work as method and in substitute() (#20217)
  • eval: Input() support any type for "cancelreturn" in a dict (#19357)

Bug Fixes

  • Show autocmd output when F is in shortmess (#18251)
  • Has() should preserve v:shell_error #18280
  • Suppress "is a directory" messages with shortmess 'F' (#18296)
  • Display global statusline correctly with ext_messages
  • Correct nlua_wait error message #18867
  • Right-click in clickable statusline #19252
  • Remote UI may get invalid 'pumblend' value #19379
  • Assertion failure when requiring missing module in autocmd
  • api: Nvim_eval_statusline should validate input #18347
  • api: Check error after getting win/buf handle (#19052)
  • api: Check for inclusive buffer line index out of bounds correctly (#19056)
  • api: Change default value of 'pattern' in nvim_exec_autocmds (#19115)
  • api: Do not switch win/buf if getting option in current win/buf (#19383)
  • api: Make nvim_set_hl(ns=0, ...) redraw screen properly
  • api: Nvim_set_hl bail out on invalid group name (#20021)
  • api: Notify dict watchers on nvim_set_var and vim.g setter
  • api/command: Fargs behavior when no arguments are passed (#19862)
  • autocmds: Separate command from desc (#18617)
  • buffer: Disable buffer-updates before removing from window #18933
  • build: Missing definitions for sizeof macros #16393
  • build: Only pass -municode if MINGW #19049
  • build: Strip trailing newline from variable (#19084)
  • build: Don't disable byte precompilation on debug builds
  • build: Fails if git is missing #19366
  • charclass: Make behavior with empty str match latest Vim (#19749)
  • checkhealth: Skip vim.health #18816
  • ci: Remove 2000ms blocking wait in many plugin/lsp_spec.lua tests
  • cmd: Make :-tabmove work with modifiers (#18447)
  • cmdheight=0: Various issues part3 #19816
  • cmdline: Fix passing -1 as char
  • cmdline: Trigger CmdlineEnter and ModeChanged earlier (#19474)
  • cmdline: Do not trigger completion at wrong time (#19920)
  • cmdline: Don't send invalid cursor with incsearch and cmdheight=0
  • column: Move sign sentinel after inserting/deleting lines (#20400)
  • completion: Remove wrong FUNC_ATTR_NONNULL_ALL (#19627)
  • diagnostic: Use nvim_exec_autocmds to trigger DiagnosticChanged (#18188)
  • diagnostic: Check for negative column value (#18868)
  • diagnostic: Remove buf from cache on BufWipeout (#20099)
  • diagnostic: Populate data key in DiagnosticChanged autocmd in reset (#20207)
  • docs: Correct obsolete note about 'writedelay' in dev docs
  • docs: Remove internal function from docs
  • edit.c: Indentkeys double indent after "!" #12894
  • eval: Check for v:lua when calling callback (#19855)
  • eval/f_getmatches: Return empty list for invalid win argument (#18893)
  • events: Make CursorHold behave as documented
  • ex_cmds: Correct flags for :const (#19387)
  • exceptions: Restore did_throw (#20000)
  • exmode: Do not throttle messages when pressing enter to print line
  • extmarks: Make virt_lines always start at 0 virtcol
  • filetype: Fix and improve filetype patterns
  • fillchars: Change fallback after setcellwidths()
  • float: Make screen*() functions respect floating windows
  • float: Fix glitch when making float window with border a split
  • float: Fix mouse drag position if float window turned to a split
  • folds: Fix fold regression with :move (#18685)
  • folds: Fix fold remains when :delete makes buffer empty (#19673)
  • ftdetect: Source plugins in autogroup (#18237)
  • gen_vimdoc.py: Handle missing luajit
  • getchar: Flush screen before doing a blocking wait
  • handlers: More specific error messages (#16772)
  • health: Correct shada file path #18603
  • health: Handle non-existent log file #18610
  • highlight: Use ctermbg/fg instead of bg/fg when use_rgb=false #18982
  • highlight: Add missing 'nocombine' to nvim_get_hl apis (#19586)
  • highlight: Set the window namespace when redrawing statusline
  • hl: Set Normal hl group sg_attr value #18820
  • hl: Return cterm fg/bg even if they match Normal #18981
  • inccommand: Do not try to preview an ambiguous command (#18827)
  • inccommand: Avoid crash if callback changes inccommand option (#18830)
  • inccommand: Clear cmdpreview state if preview is not shown (#18923)
  • inccommand: Skip split window if not enough room #18937
  • inccommand: Never preview if parsing command failed (#18944)
  • inccommand: Parse the command to check if it is previewable
  • inccommand: Deal with unsynced undo (#20041)
  • input: Allow Ctrl-C to interrupt a recursive mapping even if mapped (#18885)
  • input: Fix macro recording with ALT and special key (#18917)
  • input: Use correct grid when restoring cursor for mapping (#19047)
  • input: Do no reinterpret mouse keys with ALT modifiers
  • input: Use click number of last click for mouse drag (#20300)
  • inspect: Escape identifiers that are lua keywords (#19898)
  • keywordprg: Default to :help if set to empty string (#19983)
  • l10n: Improve zh_CN and zh_TW translations (#19969)
  • log: Back even again
  • logging: Skip recursion, fix crash #18764
  • logging: Make logmsg() thread-safe again
  • logging: Try harder to resolve Nvim "name" #19016
  • lsp: Unify progress message handling (#18040)
  • lsp: Fix unnecessary buffers being added on empty diagnostics (#18275)
  • lsp: Fix infinite loop in resolved_capabilities deprecation message (#18333)
  • lsp: Add missing bufnr argument (#18382)
  • lsp: Fix rename capability checks and multi client support (#18441)
  • lsp: Detach spawned LSP server processes (#18477)
  • lsp: Perform client side filtering of code actions (#18392)
  • lsp: Only send diagnostics from current buffer in code_action() (#18639)
  • lsp: Respect global syntax setting in open float preview (#15225)
  • lsp: Include cancellable in progress message table (#18809)
  • lsp: Adjust offset encoding in lsp.buf.rename() (#18829)
  • lsp: Set buflisted before switching to buffer (#18854)
  • lsp: Fix multi client handling in code action (#18869)
  • lsp: Small bugs in snippet-parser #18998
  • lsp: Pcall nvim_del_augroup_by_name (#19302)
  • lsp: Abort pending changes after flush when debouncing (#19314)
  • lsp: Don't attach a client in lsp.start() if there is none (#19328)
  • lsp: Account for initializing servers in vim.lsp.start (#19329)
  • lsp: Move augroup define to if statement (#19406)
  • lsp: Set workspace.configuration capability (#19548)
  • lsp: Send didOpen if name changes on write (#19583)
  • lsp: Prevent unexpected position jumps (#19370)
  • lsp: Avoid ^M character in hover window on Windows (#19640)
  • lsp: Set end_col in formatexpr (#19676)
  • lsp: Handle multiple clients with incremental sync (#19658)
  • lsp: Fix some type annotations in lsp.rpc (#19714)
  • lsp: Avoid pipe leaks if lsp cmd isn't executable (#19717)
  • lsp: Handle nil client in onexit callback (#19722)
  • lsp: Fix nil value error in get_group (#19735)
  • lsp: Clean the diagnostic cache when buffer delete (#19449)
  • lsp: When buffer detach remove buffer from client attached buffers (#20081)
  • lsp: Schedule removal of client object (#20148)
  • lsp: Support false result in handlers (#20252)
  • lsp: Out of bounds error in lsp.util.apply_text_edits (#20137)
  • lsp: Use correct function name in deprecated message (#20308)
  • lsp: Create missing directory before creating file (#19835)
  • lua: Don't mutate opts parameter of vim.keymap.del (#18227)
  • lua: Stop pending highlight.on_yank timer, if any (#18824)
  • lua: Highlight.on_yank can close timer in twice #18976
  • lua: Clear got_int when calling vim.on_key() callback (#18979)
  • lua: Don't leak memory on error
  • lua: Double entries in :lua completion #19410
  • lua: Make it possible to cancel vim.wait() with Ctrl-C (#19217)
  • lua: Make ui_attach()/ui_detach() take effect immediately (#20037)
  • lua: Make vim.str_utfindex and vim.str_byteindex handle NUL bytes
  • lua: Free vim.ui_attach callback before lua close (#20205)
  • lua: Fix architecture-dependent behavior in usercmd "reg" (#20384)
  • mac: Use same $LANG fallback mechanism as Vim
  • mac: Add CoreServices to flake.nix #18358
  • man.vim: Q in "$MANPAGER mode" does not quit #18443
  • maparg: Remove double allocation (#20033)
  • mappings: Fix double-free when unmapping simplifiable Lua mapping
  • mapset: Remove existing abbreviation of same lhs (#20320)
  • mark: Set mark fnum from buffer (#19195)
  • mark: Mark without a view restores at topline #19224
  • mark: Fix unexpected cursor movements (#19253)
  • mark: Give correct error message when mark is in another buffer (#19454)
  • menu: Make :menu still print header when there are no menus
  • messages: Add color when showing nvim_echo in :messages history
  • messages: Do not crash on cmdheight=0 and g< redisplay
  • messages: Validate msg_grid before silent! message with cmdheight=0
  • mksession: Don't store floats in session #18635
  • mouse: Click on global statusline with splits (#19390)
  • mouse: Fix using uninitialized memory with K_MOUSEMOVE (#19480)
  • mpack: Make sure a bool always is a bool
  • normal: Fix segfault with bracket command jumping to a mark
  • options: Properly free string options (#19510)
  • options: Mark winhighlight as list style (#19477)
  • packaging: Remove excess forward slash in Wix Patch (#18121)
  • paste: Ignore mappings in Cmdline mode (#18114)
  • path: Path_is_url returns false for "foo:/" #19797
  • powershell: Filter ":!" commands with args #19268
  • pum: Make right drag in anchor grid to select work in multigrid UI (#19382)
  • query: Fix unnatural order for inherits in treesitter queries (#20298)
  • redraw: Make sure :redraw! redraws command line
  • redraw: Handle switching to a tabpage with larger p_ch value
  • redraw: Avoid unnecessary redraws and glitches with floats+messages
  • redraw: Make redrawdebug=nodelta handle all the cases
  • rpc: Break nvim_error_event feedback loop between two nvim instances
  • runtime/genvimvim: Omit s[ubstitute] from vimCommand #18480
  • screen: Restart win_update() if a decor provider changes signcols (#18768)
  • screen: Check for col instead of vcol when drawing fold (#19572)
  • session: Respect sessionoptions=terminal #19497
  • shared: Avoid indexing unindexable values in vim.tbl_get() (#18337)
  • signs: Priority of extmark signs (#19718)
  • source: Make changing 'shellslash' change expand() result
  • source: Fix expand('') no longer works for Lua
  • spell: Make setting 'encoding' clear word list
  • spell: Correct spell move behavior without "noplainbuffer" (#20386)
  • startup: Nvim with --clean should not load user rplugins
  • substitute: Subtract number of backslashes later
  • tabpage: Check if ROWS_AVAIL changed for resize (#19620)
  • terminal: Invalid pointer comparison #18453
  • terminal: Do not trim whitespace that is actually in the terminal (#16423)
  • terminal: Scrollback delete lines immediately #18832
  • terminal: Coverity USE_AFTER_FREE #18978
  • terminal: Crash if TermClose deletes own buffer #19222
  • terminal: Avoid reading over the end of cell.chars (#19580)
  • terminal: Skip aucmd_win when checking terminal size (#19668)
  • terminal: Adopt altscreen test for libvterm 0.2 changes
  • terminfo: Disable smglr for vtpcon and conemu (#18855)
  • termopen: Avoid ambiguity in URI when CWD is root dir (#16988)
  • tests: Fix some screen.lua warnings
  • tests: Fix some issues with ui/inccommand_spec.lua causing slowness
  • tests: Unreliable parser_spec #18911
  • tests: Check for EOF on exit of nvim properly
  • tests: Missing clear() #18927
  • tests: Remove misleading $TEST_PATH segment #19050
  • tests: Remove irrelevant usage of display-=msgsep
  • tests: Use pending_c_parser when needed
  • tests: Indicate in test logs when nvim exit times out
  • tmpdir: Invalid tempname() if username has slashes #19323
  • treesitter: Create new parser if language is not the same as cached parser (#18149)
  • treesitter: Bump match limit up
  • treesitter: Offset directive associates range with capture (#18276)
  • treesitter: Correct region for string parser (#18794)
  • treesitter: New iter if folded
  • treesitter: Don't error when node argument of predicate is nil (#19355)
  • treesitter: Free memory on removing parser (#19933)
  • treesitter: More efficient node:root()
  • treesitter: Make it get_captures_at_position
  • treesitter: Do not link @error by default
  • treesitter: Don't support legacy syntax in start()
  • treesitter: Use the right loading order for base queries (#20117)
  • treesitter: Prevent endless loop on self-inheritence
  • treesitter: Return full metadata for get_captures_at_position (#20203)
  • ts: Do not clobber spelloptions (#20095)
  • tui: Update modifyOtherKeys reporting (#18158)
  • tui: Disable extended keys before exiting alternate screen (#18318)
  • tui: Piping nodejs to nvim breaks input handling #18932
  • tui: Resize at startup #17795
  • tui: Add fixups for hterm family #19078
  • tui: Handle padding requirements for visual bell (#20238)
  • ui: Require window-local value to show winbar on floating windows (#18773)
  • ui: Do not call showmode() when setting window height (#18969)
  • ui: Set redraw_cmdline when setting window height (#19630)
  • ui: Don't allow decor provider with ns_id==0
  • ui: Ui compositor does not correctly free event callbacks
  • ui: Allow redrawing statusline when msgsep is used (#20337)
  • ui: Redraw end of buffer if last line is modified (#20354)
  • unittests: Coredump when running unit tests #18663
  • usercmd: Also check for whitespace after escaped character (#19942)
  • version.c: Mark N/A vim patches #18587
  • vim.ui.input: Accept nil or empty "opts" #19109
  • window: Close floats first when closing buffer in other tab (#20284)
  • window: Fix equalization with cmdheight=0 (#20369)
  • windows: Stdpath("state") => "nvim-data" #18546
  • windows: Exepath, stdpath return wrong slashes #19111
  • winhl: Do not crash when unsetting winhl in just opened window
  • Make :undo! notify buffer update callbacks (#20344)
  • eval: Make Vim functions return inner window width and height (#19743)

Build System

  • Bump Doxyfile to minimum required version 1.9.0 #18118
  • Bump msgpack to 4.0.0
  • Enable EXITFREE on Debug builds (#17783)
  • Add formatting targets for c and lua files (#19488)
  • clang-format: Align with project style #18192
  • clint: Remove all python2-isms with pyupgrade
  • clint: Remove "function size is too large" warning
  • clint: Remove rules for includes, whitespace, tabs #18611
  • cmake: Simplify and speed up the uninstall target
  • cmake: Simplify def_cmd_target function
  • cmake: Use glob_wrapper instead of file(GLOB in main CMakeLists
  • cmake: Fix static libintl test on macOS
  • deps: Bump LuaJIT, Luv and libuv
  • deps: Support universal builds on macOS
  • deps: Bump tree-sitter to v0.20.7 (#20067)
  • deps: Bump tree-sitter parsers
  • deps: Bump required libvterm to v0.3 (#20222)
  • deps: Require libtermkey version 0.22
  • deps: update neovim-qt, win32tools.zip

Performance

  • Only redraw for CurSearch when it is currently in use
  • highlight: Allocate permanent names in an arena for fun and cache locality
  • highlight: Use binary search to lookup RGB color names
  • map: Visit only one hash bucket instead of all, like an actual hash table
  • memory: Get rid of extraneous heap allocations
  • memory: implement arena memory allocation with a shared freelist
  • memory: Use an arena for RPC decoding and some API return values
  • messages: Don't call ui_flush() per message line in various places
  • treesitter: Use a reuse list for query cursors
  • ui: Reduce allocations when encoding and decoding "redraw" events
  • ui: Avoid ui_flush() work in headless mode

Refactor

  • checkhealth: Rename to vim.health, move logic to Lua #18720
  • Add pure attribute to pure functions
  • Replace char_u variables and functions with char
  • Enable -Wconversion warning for all Nvim source files
  • Add warnings for deprecated functions (#18662)
  • Change type of linenr_T from long to int32_t
  • Use nvim_get/set_option_value for vim.{b,w}o
  • Remove functions marked for deprecation in 0.8 (#19299)
  • Rename function prefix mb to the more accurate utf_cp (#19590)
  • Remove some unused includes
  • Change remaining sourcing_name/sourcing_lnum to exestack
  • Change FALSE/TRUE to false/true
  • api: Use a hashy hash for looking up api method and event names
  • api: Use a unpacker based on libmpack instead of msgpack-c
  • api: restructure api/vim.c and api/private/helpers.c code in separate files
  • api: Remove redundant fields of CmdParseInfo
  • aucmd: Call define_autocmd() directly for default autocmds
  • ci: Cleanup release.yml #19132
  • cmd: Format do_one_cmd()
  • cmd: Hoist out some code into functions
  • cmd: Unify execute_cmd with do_one_cmd
  • decor: Use decor levels properly
  • drawline.c: Factor out utf8 multibyte check
  • eval: Use Hashy McHashFace instead of gperf
  • eval.c: Resolve all clint issues (#19774)
  • eval/funcs.c: Resolve all clint errors
  • events: Remove unnecessary fudging of updating_screen
  • ex_cd: Add an early return to fix clint warning
  • ex_docmd.c: Resolve most clint errors (#19775)
  • filetype: Allow vim.filetype.match to accept buf and filename (#19114)
  • highlight: Make hlattrs2dict always use pre-allocated dict
  • log: Simplify log_path_init #18898
  • log: Use msg_schedule_semsg #18950
  • lsp: Remove redundant client cleanup (#18744)
  • lsp: Make the use of local aliases more consistent
  • lsp: Use autocmd api (#19407)
  • lsp: Factor out read_loop function
  • lsp: Encapsulate rpc uv handle
  • lsp: Extract rpc client from rpc.start
  • lua: Replace hard-coded gsub with vim.pesc() (#18407)
  • lua: Reformat with stylua 0.14.0 (#19264)
  • lua: Git-blame-ignore stylua update PR (#19273)
  • lua: Replace vim.cmd use with API calls (#19283)
  • map: Simplify free_all_mem handling
  • map: Statically initialize maphash array
  • map: Simplify add_map params
  • normal: Convert function comments to doxygen format
  • object: Get rid of redundant FIXED_TEMP_ARRAY
  • ops: Doxygen docstrings #17743
  • option: DRY get/set option value #19038
  • plines: Use a struct for chartabsize state
  • provider: Use list comprehension #19027
  • regexp_nfa.c: Match where Vim calls fopen() (#18778)
  • runtime: Convert dist#ft functions to lua (#18247)
  • runtime: Convert more dist#ft functions to lua (#18430)
  • runtime: Convert the remaining dist#ft functions to lua (#18623)
  • runtime: Port remaining patterns from filetype.vim to filetype.lua (#18814)
  • runtime: Refactor filetype.lua (#18813)
  • runtime: Port scripts.vim to lua (#18710)
  • setcellwidths: Use TV_LIST_ITEM_NEXT properly
  • signs: Handle non-sign attrs separately (#19784)
  • tests: Introduce testprg()
  • treesitter: Get_{nodes,captures}at{position,cursor}
  • typval: Change FC_CFUNC abstraction into FC_LUAREF
  • ui: Simplify stdin handling
  • uncrustify: Format all c code under /src/nvim/
  • vim.opt: Remove del arg
  • vim.opt: Unify vim.bo/wo building
  • vim.opt: Optimize append/prepend/remove
  • Format runtime with stylua

v0.7.2

1 year ago
NVIM v0.7.2
Build type: Release
LuaJIT 2.1.0-beta3

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. Extract: tar xzvf nvim-macos.tar.gz
  3. Run ./nvim-macos/bin/nvim

Linux (x64)

Tarball

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

Debian Package

  1. Download nvim-linux64.deb
  2. Install the package using sudo apt install ./nvim-linux64.deb
  3. Run nvim

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
      

Other

SHA256 Checksums

fa75852890ca4b57551da194c696d3bbd14d9d2e966bc188d1e7e52ee942b71d  nvim-linux64.tar.gz
dce77cae95c2c115e43159169e2d2faaf93bce6862d5adad7262f3aa3cf60df8  nvim-linux64.deb
33b5d020c730b6d1b5185b1306ead83b6b8f8fab0239e0580c72b5224a9658e1  nvim.appimage
0ef9478020bb6539b0f8e0d037e65cd5c69bfcb2353ee6231b0131fd30cfbd58  nvim.appimage.zsync
39cb6b62f965dccebe433083e33974e1af3c4579a14bf818066b3d5250968495  nvim-macos.tar.gz
0e969e15c7e4d9b128ec1e06159ead386d262fdc94616ddbb0c245abcc798ae8  nvim-win64.zip
8cd7d3ae8ceeff9c0af8e5b1e216beb86230494f50f2f8dad2684fd2936b1494  nvim-win64.msi

v0.7.0

2 years ago

v0.6.1

2 years ago
NVIM v0.6.1 (2021-12-31)
Build type: Release
LuaJIT 2.1.0-beta3

Install

Windows

  1. Extract nvim-win64.zip
  2. Run nvim-qt.exe

macOS

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

Linux (x64)

  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
      

Other

SHA256 Checksums

06f1c19b09dd8cc63f970ef7edab8fa3850a154c296f453393d00854f514a847  nvim-linux64.tar.gz
ef9056e05ef6a4c1d0cdb8b21f79261703122c0fd31f23f782158d326fdadbf5  nvim.appimage
53e60639b49c692cfc54e5e435799aa4cf2cac8fc36ccfadc422bd98ee9cade6  nvim.appimage.zsync
3546be6a13f45411731dc4c93b0932f7d6197b4318ea082cafe7b28d843248f9  nvim-macos.tar.gz
0c1fa8e95882836baec568ad547fe558241f2b26ff738a28e42fafae8c32bcf4  nvim-win64.zip

Thanks to our sponsors!

Thanks to the large number of financial contributors which help make Neovim possible. In particular, these sponsor neovim with $100 per month or more:

  • Anton Kochkov
  • Airbrake
  • Folke Lemaitre
  • Shea Parkes
  • Roman Fuentes

Changes since 0.6.0

Bug Fixes

  • api: allow nvim_buf_set_extmark to accept end_row key (#16686) (1b54344)
  • diagnostic: assert that diagnostics have line number and column (#16687) (9dae939)
  • diagnostic: clamp diagnostics on negative line numbers (#16497) (096f841)
  • diagnostic: escape special chars in file names (#16588) (beac24d)
  • diagnostic: respect "if_many" source option for virtual text (#16697) (060eeaa)
  • diagnostic: set effective buffer number for DiagnosticChanged autocmd (#16485) (84784a8)
  • diagnostic: set effective buffer number in autocmd (again) (#16590) (08ddfa9), closes #16474
  • lua: do not cast offset to char_u in str_utf_start (93f1ec0)
  • lsp: avoid attaching to unloaded buffers (#16726) (0088994)
  • lsp: call config on_exit handler before context is cleared (#16781) (571609f)
  • lsp: fix nil-index behavior for UTF-8 in _str_*index_enc methods (#16785) (03bd914)
  • lsp: handle offset encoding (#16783) (7b60ec7)
  • lsp: progress handlers should return vim.NIL on error (#16476) (fb11ef0)
  • options: disallow empty 'fdc' and 'scl' (#16776) (37a00be)
  • quickfix: avoid O(N^2) when filling from string typval (#16663) (aa0ddc6)
  • screenpos, float: add top and left border adjustment (8f68548)
  • terminal: fix resize crash with pending scrollback (#16665) (ae249d8)
  • ui: close floating window on BufLeave event (#16664) (785bace)
  • uri: change scheme pattern to not include the comma character (#16798) (0e96f7d)

Features

v0.6.0

2 years ago
NVIM v0.6.0
Build type: Release
LuaJIT 2.1.0-beta3

Install

Windows

  1. Extract nvim-win64.zip
  2. Run nvim-qt.exe

macOS

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

Linux (x64)

  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
      

Other

SHA256 Checksums

9a7f72e25747c3839f2c8978ef4f902aada0c60ad4b5ff0cb8b9d4c1f0b35586  nvim-linux64.tar.gz
8a2b8bb009f5a10f2908c6806c4745e064a6032db89de7895805fb979c90a08e  nvim.appimage
a20073fc161e3c5ce204e301c39a434943ac9a9dc4438e8371191a014067ac55  nvim.appimage.zsync
03cdbfeec3493f50421a9ae4246abe4f9493715f5e151a79c4db79c5b5a43acc  nvim-macos.tar.gz
d46a161a8e025f8a03a75b1181372f2712116e4edf566b2569cdcc4f371f80c4  nvim-win64.zip

Changes since 0.5.0

BREAKING CHANGES

  • 32-bit windows builds are no longer provided.
  • build deps: use libuv 1.42.0 upstream for WIN32 (#15889) (f6c0a37), closes #15889
    • removes Windows 7 support
    • removes support for mouse and alternate buffers in TUI for Windows 8 and 8.1
  • lsp/diagnostic: highlight groups and signs for LSP diagnostics renamed (e.g. LspDiagnosticsDefaultWarning to DiagnosticWarn) (a5bbb93)
  • diagnostic: make DiagnosticChanged a first class autocmd (#16098) (150a592), closes #16098
    • au User LspDiagnosticsChanged autocommands are not supported. Use the new first-class DiagnosticChanged event instead.
  • lua: register_keystroke_callback => on_key (#15460) (69fe427)
    • note: this breaking change was included in 0.5.1

Features

  • :source, nvim_exec: defer script item creation until s:var access (da9b0ab)
  • :source, nvim_exec: support script-local variables (d4ed51e), closes #13143 #11507
  • lua: add trimempty optional parameter to vim.split (5fa26e2)
  • lua: add vim.str_utf_{start,end} (#16129) (2230b57)
  • lua: add vim.str_utf_pos function (d752cbc)
  • lsp: aggregate code actions from all clients (#15121) (c36df20)
  • api: add lua C bindings for xdiff (#14536) (3d3c0c6)
  • api: evaluate statusline string #16020 (9086938)
  • api: named marks set, get, delete #15346 (49fdc62)
  • api: nvim_get_chan_info: include "argv" for jobs #15537 (0603eba), closes #15440
  • api: win_viewport also sends line_count #15613 (086631c)
  • api: support :terminal input callback in lua (9e41e82)
  • ci: add backport PR action (#14766) (6cc456d)
  • decorations: allow more than one stacked highlight in a virt_text (1495d36)
  • decorations: support virtual lines (392c658) (8d7816c)
  • diagnostic: move vim.lsp.diagnostic to vim.diagostic and support other sources (a5bbb93)
  • diagnostic: add 'prefix' option to open_float (#16321) (3c74ba4)
  • diagnostic: add option to include diagnostic source (d43151e)
  • diagnostic: allow 'prefix' option to return highlight (cc48837)
  • diagnostic: allow customized diagnostic messages (#15742) (d999c96)
  • diagnostic: match(), tolist(), fromlist() #15704 (e61ea77)
  • diagnostic: update jumplist on goto_next/prev (#15942) (b55944e)
  • diagnostic: use scope = 'line' by default for open_float() (#16456) (217f9f8), closes #16453
  • diagnostic: support severity_sort (32c0631)
  • checkhealth: provide function for command line completion (8b43b07)
  • f_chansend: support Blob data argument (7e9ea08)
  • job: add parameter to close stdin (eb7f24b)
  • keywordprg: use :terminal for external commands #15398 (a90513c), closes #2995 #2761
  • lsp: add 'focus' option to open_floating_preview (#16465) (fff8827)
  • lsp: add a registry for client side code action commands (6c03601)
  • lsp: add client command support to codelens (#15820) (19a77cd)
  • lsp: add codeAction/resolve support (#15818) (ec4731d)
  • lsp: add exit_timeout flag (#16070) (80456cf)
  • lsp: add formatexpr (#16186) (52fa1d2)
  • lsp: add lsp healthcheck (e268026)
  • lsp: add per-client commands (#16101) (519d8de)
  • lsp: add tagfunc (#16103) (f940e7a)
  • lsp: add warning message for large log size (e6777a7)
  • lsp: allow configuring zindex for floating windows (#15086) (c487a73)
  • lsp: allow diagnostics to be disabled for a buffer (#15134) (1aeb945)
  • lsp: allow root_dir to be nil (#15430) (ff0833c)
  • lsp: highlight active parameter in signature help (#15018) (af26371)
  • lsp: improve vim.lsp.util.apply_text_edits (#15561) (41cfba6)
  • lsp: include original request params in handler ctx (187579f)
  • lsp: jump to diagnostics by position (#14795) (ea39ff5)
  • lsp: Make line diagnostics display prettier (e43dbfd)
  • lsp: make list handlers configurable (#15199) (3e00d4f)
  • lsp: support textDocument/prepareRename (#15514) (c1f573f)
  • lsp: use uv_spawn to check if server executable (#16430) (1a60580)
  • lsp: use vim.ui.select() in codelenses (#16004) (e7ea54a)
  • lsp: utilize textEdit.range for startbyte in omnifunc (#15957) (e9d6f7c)
  • lua: add lua-cjson as vendored dependency (8decc9f)
  • lua: add vim.mpack for msgpack support in lua (eaf661d)
  • lua: allow passing handles to vim.b/w/t (6c5e7bd)
  • lua: convert binary string with NULs to Blob (de9df82)
  • lua: document support of packages with v:lua syntax (9dd371b)
  • lua: enable stack traces in error output (#16228) (03b805a)
  • lua: expose lua-cjson as vim.json (30fed27)
  • lua: make vim.mpack support vim.NIL and vim.empty_dict() (0f59666)
  • match: allow hl group to be defined after :match command (fca52f5)
  • msgpack: convert Blobs to BIN strings (af6f454)
  • health: support lua healthchecks (9249dcd), closes #15632
  • shada: restore Blob globals properly (ef729fb)
  • terminal: TermClose: set exit code in v:event.status #15406 (50b30de), closes #4713
  • treesitter: add next, prev sibling method (1400841)
  • treesitter: allow to set highlight priority for queries (242608e)
  • ui: add opt.kind to vim.ui.select (#15838) (7ae86c1)
  • ui: add vim.ui.input and use in lsp rename (#15959) (16d4af6)
  • ui: add vim.ui.select and use in code actions (#15771) (63fde08)
  • vim script: support calling v:lua as a method (b2994e3)

Changes

Performance Improvements

  • api: avoid spurious allocations when converting small objects (705e8f1)
  • highlight: use a hashtable for highlight group names (bb4b4d7)
  • lua: optimize vim.deep_equal #15236 (4b452d4)
  • lua: don't use regexes inside lua require'mod' (ea2023f), closes #15147 #15497
  • lsp: improve json deserialization performance (#15854) (912a6e5)
  • map: reduce double pointer indirection to single pointer indirection (9e651a9)
  • treesitter: avoid string lookup of highlight name in hot loop (2460f0a)

Bug Fixes

  • :source, nvim_exec: handle Vimscript line continuations #14809 (6188926), closes #14807
  • :source: copy curbuf lines to memory before sourcing #15111 (afdc9e6)
  • allow str_utfindex second argument to be an explicit nil (#16448) (512ec46)
  • api: fix crash after set_option_value_for() #15390 (8b0e6cc), closes #14097 #13577
  • api: fix nvim_buf_set_extmark (2338345)
  • autocmd: fix conditions in block_autocmds, unblock_autocmds #15372 (29712ae), closes #6279
  • buffer_updates: cleanup test behavior (54b2c68)
  • buffer_updates: handle :delete of the very last line in buffer (8335e26)
  • buffer_updates: handle :sort of already sorted buffer (ef687d3)
  • buffer_updates: make lockmarks not affect extmarks and buffer updates. fixes #12861 (7d171b1)
  • bufupdates: send correct updates for visual paste (1423146)
  • build: add an env var to re-enable the colors (5087347)
  • build: call find_package(Threads) before using its variables (f446ab3)
  • build: export symbols on Windows (aa644b7)
  • build: fix build failure in MinGW (0503e17)
  • build: make vendored libmpack and libmpack-lua build properly (2a08aef)
  • channel: throw error if sending to internal channel w/o terminal (3b89fee)
  • checkhealth: duplicate checks if module name has "-" #15935 (a36c6e5)
  • checkhealth: mitigate issues with duplicate healthchecks #15919 (acd5e83), closes #15259
  • ci: disable broken test on openbsd on all CI due to resource constraints (a3e2636)
  • ci: re-run GHA for ready_for_review events (#15377) (c6ef956)
  • decorations: crash when :bdelete (extmark_free_all) after clear_namespace (cd353aa), closes #15212
  • defaults: "syntax sync maxlines=1" on CmdwinEnter #15552 (5f8518b), closes #15401
  • defaults: do not map Y in visual-mode #15387 (54726e8), closes #13268
  • diagnostic: allow floats to be focusable (#16093) (427bac6)
  • diagnostic: change default severity_sort order (938ed45)
  • diagnostic: clamp line numbers in setqflist and setloclist (5b0d8f8)
  • diagnostic: correctly handle folder level diagnostics (f87779a)
  • diagnostic: deepcopy diagnostics before clamping line numbers (2abc799)
  • diagnostic: do not focus floats in goto functions (#16433) (b5b025f)
  • diagnostic: don't clamp line numbers in setqflist (0341c68)
  • diagnostic: don't return nil when callers expect a table (#15765) (057606e)
  • diagnostic: don't use nil col if missing from qflist (#16357) (5e46f64)
  • diagnostic: error on invalid severity value (#15965) (d5dd0aa)
  • diagnostic: fix navigation with diagnostics placed past end of line (34bb5fa)
  • diagnostic: fix option resolution in open_float (#16229) (fd34784)
  • diagnostic: fix wrong data type in setqflist() (3fd1450)
  • diagnostic: get line count per buffer when clamping (c59f200)
  • diagnostic: handle an unknown or missing client (#16242) (1fdbd29)
  • diagnostic: handle diagnostics placed past the end of line (#16095) (a2994c8)
  • diagnostic: make set() go through cache when calling show() (d93f47d)
  • diagnostic: only update decorations for loaded buffers (#15715) (924e8e4)
  • diagnostic: preserve fields from LSP diagnostics via user_data (#15735) (17b7968)
  • diagnostic: remove useless highlight links (#15683) (c13242c), closes #15585
  • disable clipboard when test registers (dd63d93)
  • docgen: add tagfunc.lua (0746f00)
  • doc: various fixes #15604 (4eb1ebb)
  • eval: add the vimscript-1 feature to has() (18b32fc)
  • eval: checking for a non-empty string is too strict (#15987) (1dbbaf8)
  • eval: fix has('wsl') #16153 (16d06fa), closes #12642 #16143
  • eval: fixup for empty modifier in fnamemodify (#16368) (a7ad509), closes #16367
  • extmark: fix missing virt_lines when using id param of set_extmark (995dbd2)
  • extmarks: splice extmarks on nv_Undo #15920 (e069361)
  • fileio: replace characters over INT_MAX with U+FFFD (#16354) (a2e5c2f), closes #11877
  • float: fix potential heap corruption in win_redr_border (de670f3)
  • float: redraw if w_border_adj changed (7ff1bc1)
  • heath/provider.vim: using list as string #16007 (5365f24), closes #15988
  • highlight: remove syncolor.vim, always include syntax colors (9afa0d2), closes #15176 #12573 #15205
  • inccommand: ignore trailing commands only for previewed command #15638 (1f8c91b), closes #8796 #7494
  • include ci/ in exported tarball (d6f03aa), closes #15856
  • input: never reinterpret unmapped ALT- chrods in Terminal mode (#16222) (5ce35ab)
  • input: resolve isolated (non-ALT/META) mappings #13109 (c4857b6), closes #13042 #13086 #15869
  • jobwait: always drain process event queues #15402 (3c081d0), closes #15349
  • lsp_spec: tests depended on previous session (069d1de)
  • lsp: accept file URIs without a hostname (a2c2a08)
  • lsp: add done flag to messages returned in util.get_progress_messages() (#15985) (45fa70a)
  • lsp: add placeholder cancel function (#16189) (4da0351)
  • lsp: add textDocument/prepareRename to capability map (#15961) (fcc11d5), closes #15899
  • lsp: adjust legacy show diagnostic functions to use correct scope (#16106) (dc6c9fe)
  • lsp: allow diagnostic.clear to accept nil bufnr (#15137) (4ed2d4f)
  • lsp: avoid duplicates in client attached buffers (#16099) (c5525f2)
  • lsp: avoid serializing boolean as key (#15810) (96614f8)
  • lsp: change rpc start notify level to warn (#16467) (04c7b55)
  • lsp: change signature of buf_highlight_references (#16345) (eb3d591)
  • lsp: correctly parse LSP snippets #15579 (516775e), closes #15522
  • lsp: default to UTF-16 in make_position_params (2e3a474)
  • lsp: do not index nil client in progress (#16262) (8f31b21)
  • lsp: do not invoke handlers for unsupported methods (#15926) (d288daa)
  • lsp: don't update active_clients on exit_timeout (#16192) (98f5782)
  • lsp: enable additional capabilities (#15470) (5d63354)
  • lsp: ensure buffers are re-attached on rename (#16266) (ee3a58d)
  • lsp: Ensure users get feedback on references/symbols errors or empty results (256570a)
  • lsp: expose ContentModified error code to callbacks (#15262) (3f09732)
  • lsp: fix cursor row after textEdits (#16038) (bd2f61c)
  • lsp: gracefully handle nil workspaceFolders (#16284) (0ecc58c)
  • lsp: guard textDocument/codeAction command logic #15769 (433bda4)
  • lsp: improve symbols_to_items performance (#16197) (5ad15c9)
  • lsp: Include client name in handler error messages (#15227) (24f2b9e)
  • lsp: pass bufnr for async formatting (#15084) (c31bc6e)
  • lsp: persist diagnostic config for clients (bcc9ba5)
  • lsp: prevent double for cached plaintext markup (910967e)
  • lsp: restore diagnostics extmarks on buffer changes (#15011) (77b33e4)
  • lsp: rewrite incremental sync (#16252) (2ecf0a4)
  • lsp: send buffer contents joined on fileformat-specific linebreak (#16334) (134a638)
  • lsp: send textDocument/didChange for each buffer (#16431) (3451121)
  • lsp: support duplicate params in signature help (#15032) (9132b76)
  • lsp: update lsp-handler signature in call_hierarchy (#15738) (8164adc)
  • lsp: update workspace/applyEdit handler signature (#15573) (3f526fe)
  • lua: fix vim.deepcopy for metatables & cycled tables (#16435) (eb876a0)
  • lua: preserve argument lists which are not lists (6896d22)
  • man.vim: ensure buftype=nofile after :tag or :stag #15675 (29bc648), closes #15650
  • man.vim: filetype=man is too eager #15488 (2548a9e), closes #15487 #15487
  • mouse: fix mouse drag positions on multigrid #12667 (0dcfd0e), closes #15091
  • mouse: correct dragged position in composed layout (810da1a)
  • multigrid: mouse events crash neovim (28ac6c0)
  • nvim_open_win: crash if autocmds delete buffer/window #15549 (0c06da1), closes #15548
  • options: using :set fillchars should clear local value (7528bce)
  • prevent K_EVENT from stopping Select mode CTRL-O #15688 (5f144ef)
  • provider: compare versions as number, not string (python 3.10 support) #15937 (e16adbf), closes #14586
  • screen: make display_tick monotonic up to 2^64. fixes #16152 (9e88c9c)
  • screen: missing search highlights when redrawing from timer #15380 (db695cc), closes #13074 #14064
  • shared: do not treat empty tables as list in deep extend (#15094) (526fc60)
  • sign: reset auto sign column with minimum in float win minimal style (c8f57f6)
  • startup: init.lua: set $MYVIMRC to absolute path #15748 (c76cddf)
  • termdebug: replace mapset with nvim_set_keymap (#15699) (4d7dcbe)
  • termdebug: replace term_getline with getbufline #15598 (11289ad)
  • terminal: close without ! if the job is stopped (55defa1), closes #4683
  • terminal: free terminal if close_buffer() closes a closed terminal (#16264) (14def4d)
  • test/dumplog: tostring(rv) before formatting as string (ddaa0cc)
  • tests: use isolated XDG_DATA_HOME in startup tests (8e663e2)
  • treesitter: do not map hl_group when no mapping is set (f489d98)
  • treesitter: run predicates more often in iter_matches (458f2aa)
  • tui: extend smglr ignores to smglp and smgrp (#16239) (3ba800f)
  • tui: remove obsolete $NVIM detection #15791 (4414584), closes #12937 #11390
  • tutor: formatting, layout #15098 (c52ec8f), closes #15088
  • ui: use nowait for q mapping in floating window (#16427) (c132144)
  • v:lua: fix emsg when calling v:lua directly (da9005a)
  • vim-patch.sh: run nvim with -u NONE -n #16179 (97ae0ab)
  • vim.opt: vimL map string values not trimmed (#14982) (4906156)
  • window: win_close from other tabpage #15454 (90b2da1), closes #15313
  • windowing: positioning of relative floats (9065730)

v0.5.1

2 years ago

Nvim release build

NVIM v0.5.1
Build type: Release
LuaJIT 2.1.0-beta3

Release Notes

Install

Windows

  1. Extract nvim-win64.zip (or nvim-win32.zip)
  2. Run nvim-qt.exe

macOS

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

Linux (x64)

  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
      

Other

SHA256 Checksums

d4b5b3984f607eaec1cca1df33120adfbaa89cf167d0cac77eb95fd1a9c21e9d  nvim-linux64.tar.gz
1cfbc587ea5598545ac045ee776965a005b1f0c26d5daf5479b859b092697439  nvim.appimage
65be33fc7bfe939019693d3a8781da97def1b848d083d023d172e8a79a3d1f0a  nvim.appimage.zsync
d736845b8b63e443970ea93636dfbde3e2673a70d2058c057e41b836ac4f6f6c  nvim-macos.tar.gz
0e0dd552a1f28b222b10c07fb94787548cf443b0db6845cf683857e2e13724d2  nvim-win64.zip
d098236b443f487ac82be522e50c4259ee2043370943404db3ab38e06d6d39fa  nvim-win32.zip

v0.5.0

2 years ago

Nvim release build

NVIM v0.5.0
Build type: RelWithDebInfo
LuaJIT 2.1.0-beta3

Release Notes

Install

Windows

  1. Extract nvim-win64.zip (or nvim-win32.zip)
  2. Run nvim-qt.exe

macOS

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

Linux (x64)

  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
      

Other

SHA256 Checksums

cd59e885143e0fa7e43cfdacbc8e37dc033c56d9205b8f8a8acd08cd9f93737d  nvim-linux64.tar.gz
6305a1cab22433bf7871cbfcdb76f0013314f4a6c04e56e1547a6925df17240b  nvim.appimage
80cd39bfe4923cadb8d9e8576d6b91df5da60db6ec2f40e9bc9b9258d663dca7  nvim.appimage.zsync
6bcfa5192c9460c946e853dbd1a0baf659df5de184436144147711d1bceedeee  nvim-macos.tar.gz
0064bd9f6b270158212ec0a55c1e7255562d4813ad3316592b1f74df041d3c06  nvim-win64.zip
9d0dcdc535ace7500e8395e2d814a415fb9405aedb5cb56382b9f96f98c272e9  nvim-win32.zip

v0.4.4

3 years ago

Nvim release build.

NVIM v0.4.4
Build type: Release
LuaJIT 2.0.5

Install

Windows

  1. Extract nvim-win64.zip (or nvim-win32.zip)
  2. Run nvim-qt.exe

macOS

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

Linux (x64)

  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
      

Other

v0.4.3

4 years ago

Nvim release build.

NVIM v0.4.3
Build type: Release
LuaJIT 2.0.5

v0.4.2

4 years ago

Nvim release build.

NVIM v0.4.2
Build type: Release
LuaJIT 2.0.5

Release notes