Neovim 中文周刊 第 13 期:2025年5月26日至6月1日
欢迎收看第 13 期 Neovim 中文周刊!
本期周刊包含以下版块:
- Neovim 开发近况:摘录近期合并的 PR,以新功能为主
- 社区资讯:摘录近期更新的 Issue 讨论
- 插件推荐
Neovim 开发近况
本周 Neovim 并无新的变化,主要集中在 bug 修复上!
文档系统重组
本周最显著的变化之一是对文档系统的重要重组。 PR #34212这项改进由 brianhuster 完成:
builtin.txt
重命名为vimfn.txt
:更清晰地表明该文件包含 Vim 脚本函数eval.txt
重命名为vimeval.txt
:更好地区分 Vim 兼容的求值功能
这一变更解决了长期以来的混淆问题,因为 builtin.txt
实际上只包含 Vimscript 函数,而非 Lua 函数,这对使用 Lua 配置 Neovim 的用户造成了困扰。文件重命名保留了原始标签,确保向后兼容性,同时提高了文档的清晰度和一致性。
外部 UI 接口改进
外部 UI 接口和消息系统得到了多项改进:
- PR #34190 改进了消息路由机制,使消息能够正确路由到"more"窗口(如果该窗口已打开)
- Issue #34214 修复了当消息窗口打开时,命令窗口(CTRL-F)被隐藏的问题
- Issue #34213 解决了两个内联打印语句触发'more'窗口时,只有第二条消息显示在窗口中的问题
- Issue #34184 修复了
winnr('$')
在启用外部命令行 UI 时返回错误值的问题
这些改进共同提升了外部 UI 的用户体验和一致性,对使用自定义 UI 的用户尤为重要。
LSP 功能增强
LSP(语言服务器协议)相关功能获得了多项重要改进:
- 新增
workspace/diagnostic
方法支持 (#34262)(尚未合并):由 MariaSolOs 实现,允许开发者查看整个工作区的诊断信息,而不仅限于已打开的文件 - 改进
vim.lsp.log.set_format_func()
以控制日期和文件路径格式 (#34118):增强了 LSP 日志的可读性和自定义性
这些改进使 Neovim 的 LSP 客户端更加强大和灵活,特别是对于大型项目和 AI 辅助开发场景。
终端功能稳定性增强
PR #34012 修复了终端模式下处理过多 CSI 参数时可能导致的栈溢出问题。这一修复提高了终端模式的稳定性和可靠性,特别是在处理复杂终端输出时。
Tree-sitter 升级
Tree-sitter 是 Neovim 用于代码解析和语法高亮的核心组件,本周有两项重要更新:
这些更新直接提升了 Neovim 的语法高亮和代码分析功能的质量。
Vim 补丁移植
Neovim 继续保持与 Vim 的功能兼容性,本周移植了多个 Vim 补丁:
- PR #34219 移植了 Vim 9.1.1417 补丁,修复了
complete_info()
函数中关于寄存器补全信息缺失的问题 - PR #34251 移植了 Vim 9.1.1419 补丁,改进了事件处理机制
- PR #34239 移植了 Vim 9.1.1342 补丁,改进了 Shebang 文件类型检测
API 功能增强
Neovim 的 API 得到了多项增强和修复:
- PR #34210 修复了用户命令 Lua 回调中缺少 nargs 字段的问题
- PR #33715 改进了
vim.system()
函数在工作目录不存在时的错误消息 - Issue #34208 讨论了
vim.fs.root()
函数回退到 Nvim 当前目录的行为,但很可惜最终被标记了 no plan
显示和渲染改进
- PR #34241 修复了 Visual 选择模式下 curswant 更新的问题
- Issue #34235 修复了使用计数动作时块可视模式高亮显示错误的问题
构建系统改进
PR #34237 将 Windows CI 运行环境升级到 windows-2022,提升了构建系统的现代性和稳定性。
社区资讯
本周 Neovim 社区依然活跃,多个重要功能提案和讨论引发广泛关注。以下是本周的社区亮点:
内置插件管理器提案
本周最引人注目的开发是 saccarosium 提交的内置插件管理器提案 (#34223)。这个名为 vim.pack
的模块提供了一个简洁的 API 来下载和管理插件:
- 仅 419 行代码的最小化实现
- 提供简单的 API 通过远程仓库下载插件
- 使用默认的
:h packages
功能加载插件 - 每个包都下载到
opt
目录并默认打包 - 支持通过在包规格中添加
opt
键或全局配置禁用插件
该 PR 比 PR #34009功能要少的多,在对应的评论区讨论比较激烈(不过一部分是因为该PR作者的言语不太友好)!
GSoC 项目进展
Google Summer of Code (GSoC) 2025 的 Neovim 项目正在积极推进:
- AI 导向的 LSP 功能:由 ofseed 提出,旨在实现 AI 导向的 LSP 功能和 LSP 数据缓存模块。该项目将增强 Neovim 与 AI 工具的集成能力,并通过缓存机制提升 LSP 性能。
插件推荐
codecompanion-history.nvim
AI 集成插件 CodeCompanion 的历史记录管理插件,使用体验非常棒,同时该插件作者也是 mcphub.nvim 的作者!
总结
本周 Neovim 的开发和社区活动主要集中在文档系统重组、外部 UI 接口改进、内置插件管理器提案、网络访问功能实现以及 GSoC 项目进展上。这些改进和讨论共同推动了 Neovim 的发展,提升了其稳定性、功能性和用户体验。
关于
本周的内容实际上是由 AI 生成后进行了一期人工校对,如有问题请在 Github 上提交 Issue 或 PR。
那么,一如既往,希望本期周刊能对您有所裨益,感谢您的阅读。