Neovim 0.12 后,别急着删插件
如果你现在有一套稳定的 Neovim 配置,0.12 发布后第一件事不是重写,而是盘点。
别急着删 lazy.nvim。
别急着换掉 nvim-cmp。
别因为看到 vim.pack,就觉得自己的插件配置过时了。
0.12 确实重要。
它内置了 vim.pack,也继续增强 LSP、completion、diagnostics、statusline 和 UI。
但这些变化真正指向的,不是“插件都要被官方干掉”。
而是一个更重要的问题:
哪些能力应该交给 Neovim 核心,哪些能力仍然应该留给插件?
插件生态不会消失,但插件的价值说明书会被重写。
以前很多插件是在帮 Neovim 补基础设施。
以后,越来越多插件要证明自己不只是“补一个缺口”,而是在一个更强的核心之上,提供更好的工作流体验。
1. vim.pack 改变插件管理器的位置
先别急着问:lazy.nvim 会不会死?
vim.pack 真正改变的,不是某一个插件管理器的命运。
它改变的是插件管理器的位置。
过去,一个现代 Neovim 配置几乎绕不开第三方插件管理器。
你可能用过 vim-plug、packer.nvim、lazy.nvim、mini.deps。
它们解决的问题很基础:
-
• 插件从哪里来? -
• 装在哪里? -
• 怎么更新? -
• 怎么锁版本? -
• 怎么删除? -
• 什么时候加载?
如果没有插件管理器,现代 Neovim 配置就很难组织起来。
但 0.12 之后,Neovim 自己开始提供 vim.pack。
它支持安装、更新、删除 Git-based 插件,也有 lockfile。
这意味着一件事:
“能安装插件”本身,不再是第三方插件管理器的护城河。
因为 lazy.nvim 的价值从来不只是安装插件。
它还有更成熟的 lazy-loading、依赖处理、build step、插件 spec 组织、UI、profiling、生态惯性。
所以 vim.pack 不是简单地把 lazy.nvim 干掉。
更准确地说,它把插件管理器从“现代配置的必需品”,变成了“复杂配置的选择项”。
轻量用户可以只用 vim.pack。
重度用户仍然可以继续用 lazy.nvim。
区别在于,第三方插件管理器以后要回答的问题变了。
以前它回答的是:
“没有我,你怎么装插件?”
以后它要回答的是:
“你的配置复杂到需要我提供更强的组织和加载能力吗?”
如果你的配置只有十几个插件,也不依赖复杂懒加载,不需要特别复杂的依赖图,那么 vim.pack 值得实验。
如果你大量依赖事件懒加载、文件类型加载、命令触发、按键触发、依赖管理和 build hooks,那就先别动。
稳定比赶潮流重要。

2. LSP / completion 改变基础插件的位置
第二个变化,是 LSP 和 completion。
这里也不要急着问:nvim-cmp 会不会死?
基础补全还值不值得交给一个完整插件框架?
过去很多人把 Neovim 配成 IDE,靠的是一组插件拼起来的体验。
-
• LSP 配置。 -
• 语言服务器安装。 -
• 补全菜单。 -
• snippet 展开。 -
• diagnostics 显示。 -
• code action。 -
• hover。 -
• rename。 -
• format。
这些能力里,有些已经在 Neovim 核心里很久了。
但 0.12 继续往前推了一步。
比如 :lsp 提供交互式 LSP client 管理。
vim.lsp.enable() 更像正式入口。
LSP 支持 inline completion、document color、document links、on-type formatting、selection ranges、pull diagnostics、workspace diagnostics。
completion 侧也增加了 'autocomplete'、popup menu 宽度和边框、排序和过滤相关能力。
这些变化说明 Neovim 核心正在把“IDE 基础能力”越做越完整。
以前你可能必须靠一组插件才能获得一个像样的 LSP / completion 体验。
以后,对轻量用户来说,核心能力可能已经足够覆盖日常需求。
但这不等于 nvim-cmp、blink.cmp、LuaSnip 没价值。
因为重度用户关心的不是“有没有补全菜单”。
而是:
-
• 补全来源够不够多。 -
• 排序够不够符合习惯。 -
• UI 是否舒服。 -
• snippet integration 是否顺。 -
• AI completion 能不能接进去。 -
• 不同语言里的行为是否稳定。
这些仍然是插件生态擅长的地方。
所以真正会被压缩的,不是所有 completion 插件。
被压缩的是“只提供基础补全”的位置。
留下来的是“提供更好补全体验”的位置。
LSP 也是一样。
Neovim 的 built-in LSP 越正式,围绕 LSP 的插件就越不能只停留在“帮你启动客户端”。
它们要么提供更好的默认配置,要么管理 language server,要么处理跨语言细节。
以前插件负责把 Neovim 补成 IDE。
以后插件要在一个更像 IDE 的核心上,继续提供更高层的体验。

3. UI / workflow 插件最不该急着删
最不适合急着动的,是 UI 和 workflow 插件。
很多人看到 0.12 里有 UI2、default statusline、progress message、diagnostic status,就会问:
那 noice.nvim、nvim-notify、lualine、trouble 这些还要吗?
UI 层最不该因为 0.12 就急着删插件。
UI 拼的不是 API 有没有。
UI 拼的是体验。
是审美。
是信息密度。
是你每天写代码时是否顺手。
0.12 的 UI2 还是 experimental。
它说明 Neovim 核心在探索更现代的消息和命令行体验,但还不能把它写成“官方 UI 插件替代方案”。
default statusline 变强,也不等于状态栏插件没有价值。
因为很多人用 lualine,不只是为了显示诊断数量。
他们还想显示 Git 分支、文件类型、LSP 状态、格式化状态、宏录制状态、当前工作区信息。
同样,picker、notification、Git UI、debug UI、problem list 这些东西,本来就高度依赖个人工作流。
Telescope 或 fzf-lua 不是只在做“搜索”。
它们是在把文件、buffer、grep、commands、Git、LSP symbol 组织成一个统一入口。
trouble.nvim 也不是只在“显示诊断”。
它是在把 diagnostics、quickfix、workspace problems、导航和过滤组织成一种阅读问题的方式。
这类插件的价值,不是核心有没有某个 API。
而是它能不能把底层能力组织成一套更顺的工作流。
UI / workflow 层应该是最慢迁移的一层。
如果你的 UI 插件稳定,就继续用。
等核心能力稳定、生态也形成新共识,再考虑替换。
4. 新手和老用户该怎么处理
如果你是新手,0.12 对你最大的影响不是“少装几个插件”。
而是你可以用更贴近核心的方式理解 Neovim。
以前很多新手一入坑,就会复制一整套 dotfiles。
看起来很快。
实际很危险。
因为你不知道哪一层负责文件搜索,哪一层负责 LSP,哪一层负责补全,哪一层只是 UI 美化。
一旦出问题,你只能整块怀疑自己。
0.12 之后,更好的入门方式是:
-
• 先理解核心能做什么。 -
• 再决定哪些地方需要插件。
比如你可以按五个能力检查:
-
• 文件浏览。 -
• 搜索。 -
• LSP。 -
• 补全。 -
• 基础快捷键。
这五个能力能跑起来,你就已经有一个最小可用 Neovim。
不要一上来装 30 个插件。
不要因为别人说 0.12 可以原生化,就一开始追求“零插件配置”。
零插件不是目标。
理解每个插件为什么存在,才是目标。
如果你已经用了 Neovim 很久,0.12 最容易带来的不是机会,而是焦虑。
你会看到很多人重写配置。
有人迁移 vim.pack。
有人不用 nvim-cmp。
有人把 Mason 换成系统包管理器。
有人说现在配置可以更 lean。
这些都可以参考。
但不要被带着跑。
你的配置如果稳定,就先别动主线。
更好的做法是开一个实验分支,按层测试。
-
• 插件管理可以实验。 -
• LSP 可以逐步向核心入口靠拢。 -
• Completion 可以根据复杂度决定是否保留框架。 -
• UI / workflow 最好慢一点。 -
• Git、debug、test runner、project workflow 继续按实际需求选插件。
老用户最应该避免的,不是继续用旧插件。
而是被版本焦虑逼着重写一套本来稳定的配置。
5. 给你的配置做一张盘点表
如果你想现在就做点什么,可以不用重写配置。
先做一张表。
第一列:插件名。
第二列:它解决哪一层问题。
第三列:核心现在是否已经覆盖 60% 以上。
第四列:你是否依赖它的高级体验。
第五列:是否适合迁移实验。
大概可以这样分:
|
|
|
|
|---|---|---|
|
|
|
vim.pack,但不要动稳定主线 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
这个动作比“删不删 lazy.nvim”有用得多。
因为它让你从版本新闻回到自己的工作流。
Neovim 的配置从来不是为了追最新。
是为了让你每天写代码更顺。

Closing
所以,Neovim 0.12 之后,插件生态会被重写吗?
会。
但不是被重写成“没有插件”。
而是插件该站的位置变了。
核心负责越来越多稳定、通用、高频的基础能力。
插件负责更高层的体验、更复杂的工作流、更个性化的组织方式。
你真正要做的,不是追着版本重写配置。
而是打开自己的插件列表,挨个问一遍:
它是在补核心没有的能力,还是在提供我离不开的体验?
别追版本,盘点配置。
夜雨聆风