开发者生态
evening
安装 NeoVim 导致原始 Vim 撤消文件被删除
2026-09-27
1 阅读
约4分钟阅读
jandeboevrie
字号:
计算机科学家 David Chisnall 的 Mastodon 帖子有一个非常不为人知的开场白:我从 2000 年左右开始使用 vim。我用它写了五本书、一篇博士论文、几十篇论文和 150 多篇文章。此时,当我使用一堆常见的 vim 命令时,我的高级大脑功能根本没有发挥作用,它们只是发生了。我用其他东西写的文档中间有随机的 :w 。 Chisnall 继续谈论一项特定的 vim 功能:持久撤消是我最喜欢的 vim 功能之一。 [...]我并不经常需要持久的撤消。但在我需要它的少数情况下,它是无价的:哎呀,我从这个文件中删除了一些东西,也许上周和一次重新启动前,它是什么?撤消直到找到它,复制它,并将其粘贴到当前版本中。或者,更常见的是:我让这个工作正常,然后我整理它准备提交,现在它不起作用,我做了什么? Vim 在大约 20 年的时间里一直在主要版本升级中保持这一功能。我想都没想,这只是拉斯金第一定律的一部分:程序不得损害用户的数据,或者因不作为而导致用户的数据受到损害。如果 vim 或计算机崩溃,或者如果我关闭文件并在六个月后返回它,我的撤消历史记录仍然存在。 NeoVim 是 vim 的一个分支(由于其他原因出现在新闻中):所以我在 NeoVim 还很新的时候尝试过它。你熟悉 Vim,但是更好吗?伟大的!我在 NeoVim 中注意到的第一件事是撤消不起作用。我尝试在 vim 中打开该文件,但撤消操作也不起作用。 Neovim 更改了撤消文件的格式。它没有升级旧的。它没有为撤消文件使用不同的名称。它刚刚注意到 vim 撤消文件的存在,将其删除(丢失了其中的所有数据)并用 vim 无法读取的文件替换了它。我提出了一个与此相关的问题,并被告知持久撤消格式不稳定,用户不应依赖于明确称为持久撤消的功能中保存的数据。它已经改变过一次,并且很可能会再次改变。我对 NeoVim 的体验就这样结束了。作者立即表明他们绝对不能相信我的任何数据。破坏持久撤消是我可以原谅的一个错误,但是仅仅因为某些东西是文件系统上的持久文件,其中包含您可能想要的数据,他们的程序就没有理由不删除它,这意味着他们没有对用户的注意义务的概念。我喜欢这篇文章(我几乎全文引用了它),因为它涵盖了一些重要的事情:我从未听说过像这样的持久撤消,而且它看起来有点令人惊奇。人们确实会记得软件失去了他们的辛勤工作或不尊重他们的情况。我可以看到“它已经改变了一次,并且可能会再次改变”是多么强烈的感觉。我也喜欢拉斯金第一定律的出现。以 Macintosh 和 Canon Cat 闻名的杰夫·拉斯金 (Jef Raskin) 在他 2000 年出版的《人性化界面》一书中总结了这三项法则,内容如下:计算机不得损害您的工作,或者因不作为而让您的工作受到损害。计算机不会浪费您的时间或要求您做超出绝对必要的工作。如果一个界面能够响应人类的需求并考虑到人类的弱点,那么它就是人性化的。作为一名年轻设计师,这对我来说是一本非常重要且对我影响深远的书。我不知道为什么这些法律在今天之前还没有传到无名者那里。 2026 年 8 月 28 日 变更管理 18 条原则 19 文本编辑 20 撤消 11
这篇文章对您有帮助吗?
订阅66必读
每日精选科技资讯,直达你的邮箱