AMAZINGINDEX.COM 让生活多一点 Amazing
46.5
VOL. 2026.09
2026.09.28
← 返回 2026.09.28 日报
日报快照 · Daily Snapshot
NO. 014

Neovim 删除 Vim 用户 20 年 undo 历史

#ARTICLE HackerNews 2026.09.28
推荐指数 44.0 NO. 014 · 2026.09.28
发布2026/09/27Score315Comments274

Neovim 与 Vim 的 undo 文件格式不兼容,导致后者持久化撤销历史被静默覆盖删除。对依赖 undo 树进行代码考古的开发者是灾难性数据丢失,暴露了分叉项目对用户数据迁移的漠视。

Chisnall 的愤怒不在于技术缺陷,而在于 Neovim 团队从未将"保护 Vim 用户数据"纳入设计约束。这其实是开源分叉项目的经典陷阱:新团队急于证明自己更现代,反而对老用户的沉没成本缺乏敬畏。

对 AI 工具链的启示更直接。现在满大街的"Vibe Coding"工具都在重写、自动生成、覆盖用户代码,但几乎没有哪家认真做过"用户意图保留"和"可逆操作"的设计。Cursor 的 tab 补全可以一键接受,但你想精确回退到某个中间版本?基本靠 Git 兜底。当 AI 生成速度远超人脑跟踪能力时,"持久化 undo"这类古老需求会重新变得致命。

如果你在做 AI 编程工具,建议把"操作可逆性"从边缘功能提到核心架构。不是简单的 Cmd+Z,而是像 Vim undo 树那样,保留完整的分支历史,让用户能在时间线上任意穿梭。这会是下一个差异化战场。

负面 199 条评论

核心争论:开源开发者对用户数据安全是否负有道德义务

natbennett

I was also a very early user of Neovim. The way I personally remember it being positioned was “Vim, but with breaking changes.”

tmp_throwaway_q

Yeah, this hasn't been a problem since forever (or at least I haven't noticed). They had to break the undo file format a while ago to actually work correctly for byte-level buffer change events (very important for tree sitter and other plugins listening for buffer changes). The undo file format is v

mikestew

The “drama” was linked in TFA: https://github.com/neovim/neovim.github.io/issues/501

查看原文 →