v0.6.0
版本发布时间: 2021-12-01 02:41:06
neovim/neovim最新发布版本:nightly(2024-10-18 13:12:28)
NVIM v0.6.0
Build type: Release
LuaJIT 2.1.0-beta3
Install
Windows
- Extract nvim-win64.zip
- Run
nvim-qt.exe
macOS
- Download nvim-macos.tar.gz
- Extract:
tar xzvf nvim-macos.tar.gz
- Run
./nvim-osx64/bin/nvim
Linux (x64)
- Download nvim.appimage
- 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
- If your system does not have FUSE you can extract the appimage:
Other
- Install by package manager
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
toDiagnosticWarn
) (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 foropen_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
tovim.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
- defaults: auto-create backup dir (4600193)
- defaults: inccommand=nosplit #15395 (7215d35)
- defaults: set undo points in <C-U> and <C-W> (#15400) (2cb8db3)
- defaults: limit syntax cost on CmdwinEnter #15401 (622a36b), closes #6289 #6399
- defaults: map CTRL-L to search highlights, update diffs #15385 (0aa8128)
- defaults: map Y to y$ #13268 (5a111c1), closes #416 #6289
- defaults: remove 'options' from viewoptions #15397 (3954537), closes #6289
- defaults: set hidden (f6c72b7)
- defaults: set nojoinspaces (d417e67)
- defaults: switchbuf=uselast #15394 (4ba7495)
-
runtime: add packages as
"/pack/*/start/*"
patterns to &rtp (9df7e02) - startup: load builtin plugins with --clean #15893 (c7a63f3), closes #15605
- terminal: set cursorlineopt=number in terminal mode (#15493) (c61a386)
- window: skip non-focusable floats for :windo (#15378) (e8631cb)
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)
1、 nvim-linux64.tar.gz 9.65MB
2、 nvim-linux64.tar.gz.sha256sum 86B
3、 nvim-macos.tar.gz 8.82MB
4、 nvim-macos.tar.gz.sha256sum 84B
5、 nvim-win64.zip 32.47MB
6、 nvim-win64.zip.sha256sum 81B
7、 nvim.appimage 13.97MB
8、 nvim.appimage.sha256sum 80B
9、 nvim.appimage.zsync 49.08KB
10、 nvim.appimage.zsync.sha256sum 86B