本文共计4815个字,预计阅读时长19.3分钟。
官方网站:https://neovim.io/
Vim是一款基于Vi编辑器的文本编辑器,Neovim是Vim的一个分支,旨在解决Vim的一些缺点并提供额外特性。Neovim具有更好的性能和稳定性,支持异步插件和脚本,改进了对现代用户界面和Unicode字符的支持。Neovim可在Windows、Linux、MacOS上安装,配置遵循XDG基本目录规范。
软件截图软件特点简化维护以提高错误修复和功能合并的速度。
将工作分派给多名开发人员。
无需对核心源进行任何修改即可实现新的/现代的用户界面。
使用基于协同进程的新插件架构提高可扩展性。插件可以用任何编程语言编写,无需编辑器的任何明确支持。
更新日志Features
lsp: Update LSP healthcheck format (#28988)
Build System
deps: Bump tree-sitter-query to v0.4.0deps: Bump tree-sitter-c to v0.21.3deps: Bump tree-sitter-vimdoc to v3.0.0deps: Drop unused bundled bash, python parsers and queriesmacos: Disable deduplication in link step"popcount" name conflict on NetBSD #28983Remove -O2 from gen_cflagsReuse code for deps.txt for both deps and main build
Bug Fixes
Show swapfile warning as a warning (#28972)Assert failure in VimL expression parserapi: Alloc and draw cursor window in nvim__redrawcolorscheme: Underline StatusLineNC with 'notermguicolors' #28810column: Crash with 'signcolumn' set to "number" (#29003)column: Clamp line number for legacy signscolumn: 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 #28961filetype: Fix typos in filetype detectionfloat: Handle error in win_float_create() (#29742)fs: Make vim.fs.root work for relative paths and unnamed buffers (#28973)health: Broken ruby detect #28804health: 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 deletelsp: 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 changemouse: 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 ftpluginsnippet: 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 pairstohtml: Ignore lsp inlay hintstohtml: Show how many warnings are hiddentohtml: Properly handle multiple hl groups #29012tohtml: Extmark text may be out of boundstohtml: Support ranges againtreesitter: Do not modify highlight state for _on_spell_navtreesitter: Ensure syntaxset augroup exists (#29542)treesitter: Display fields for anonymous nodes in :InspectTreetreesitter: Recognize aliased parsers in omnifunc, query lintertui: 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 #29089ui: Avoid ambiguity about last chunk when flushing halfway (#29718)version: Fix vim.version().prereleasevim.text: Remove assert from vim.text.hexdecodewin-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 errorsMisc (#29714)lpeg: Merge upstream changeslsp: Format the handwritten part #29295
Refactor
Replace deprecated vim.loop with vim.uvlsp: Reuse buf_detach_client logic in on_detach (#28939) (#29024)path.c: Add nonnull attributes (#28829)tests: Use more global highlight definitionstests: More global highlight definitions
Testing
Add a test for #29119Do not set termguicolors in test runnerRemove checks for failed tests on WindowsStarting and stopping treesitter highlight (#29546)Fix reporting "no flush received" too early (#29735)