32年,一人撑起全球数十亿台设备编辑器!却因拒绝补丁,催生分支反超原版……
全球几乎每一台基于Unix的电脑上都自带一款文本编辑器,该编辑器曾资助乌干达的一家孤儿院。开发者独自一人维护这款软件长达32年,直到他再也无法维护为止。
三十多年来,全球上几乎每个Unix系统上都安装了文本编辑器。
无论是在世界任何地方的数据中心打开一台服务器,还是在私人机房里运行一台树莓派,亦或是咖啡馆里一台崭新的Mac,这款程序早已安装在系统里,三十年来始终如一。大多数开发者至少有一次不小心就启动了它,输入几个字符后才发现自己根本不知道该如何退出,只能上网搜索退出方法。
这款编辑器能发展成什么样子,全由一个人说了算,而且这一切几乎都是他独自完成的。他最早在Unix系统上接触了vi编辑器,1988年买了一台Amiga电脑,却找不到能在这台机器上运行的vi版本。于是他从一个复刻版本入手,自己从头写了一个。他亲自阅读每条缺陷报告,决定接纳还是驳回代码补丁。整个项目唯一的管理权在他手里,掌握着全部核心权限,却不求任何回报。如果这款编辑器为你节省了时间,他只希望你能给乌干达一个村庄里的孤儿院捐一点钱。
多年来,一切都运转如常。这款编辑器遍布计算机领域的各个角落,捐款也源源不断地流向这个村庄。然而,一位远在地球另一端的开发者提交了一个补丁,但该补丁被拒绝了。而正是这次拒绝,将他独自守护了数十年的项目一分为二。
这是一个全球装机量最大的文本编辑器的故事:一位工程师,始终不肯将项目的核心权限交给任何人。而在一个清晨,这些权限最终不再属于任何人。
一、从一台Amiga电脑到乌干达
1988年,Bram Moolenaar买了一台Amiga电脑。他之前在Unix系统上学习过vi编辑器,也想在新电脑上使用它。当时vi还没有Amiga版本,所以Moolenaar找到了当时最好的克隆版本:一个名为Stevie的程序,并开始对其进行改进。
该软件的首个公开版本1.14于1991年11月2日发布,收录在Fred Fish的第591号磁盘中。他最初将其命名为Vi IMitation(Vi模仿版)。1992 年,随着1.22版的发布,名称改为Vi IMproved(Vi增强版)。多年来,它的缩写一直保持不变:Vim。
Moolenaar于1985年毕业于代尔夫特理工大学,获得电气工程学位。这位荷兰工程师追求严谨可靠,Vim也正是他性格的写照:精准、高度可定制,且对向后兼容绝不妥协。
1994年,Moolenaar前往乌干达的基巴莱,在一家照料艾滋病孤儿的儿童中心担任水利环卫志愿工程师。他随后创立了荷兰国际儿童关爱基金会(ICCF Holland)这一非政府组织,专门资助该孤儿院。Vim也由此成为一款公益软件:软件本身完全免费,Moolenaar会呼吁用户为该基金会捐款。
Vim的启动界面上始终显示着这条捐助提示,数以百万计的开发者都曾见过。这款文本编辑器就像一位街头艺人在世界顶级音乐厅演奏,并将所有小费都投入募捐箱,资助了乌干达的一家孤儿院。
从2006年7月到2021年9月,Moolenaar在谷歌苏黎世办公室负责谷歌日历的开发工作,同时也会抽出一部分时间维护Vim编辑器。谷歌聘用了最重要的开发工具之一的创造者,而他的日常工作,却是在做一款日历应用。

鸣谢:作者,《Vim 和 Neovim 从 Amiga 到现在的演变历程》
二、被他拒绝的补丁
2014年2月,巴西开发者Thiago de Arruda向Vim提交了一个补丁,为其添加多线程支持。Moolenaar拒绝了该补丁。理由是该补丁体积过大、侵入性太强,与Moolenaar保守谨慎的变更处理方式不符。
于是,De Arruda创建了Vim的分支。
他将这个分支命名为Neovim。他目标十分明确:彻底重构Vim源码,由内到外重写这款编辑器。这份代码历经二十余年沉淀,其中大部分都由Moolenaar一人完成。你熟悉的按键操作会被完整保留,但底层的一切,都焕然一新。
全新的底层架构,旨在实现原版Vim无法做到的事:可以被其他程序嵌入并调用;老旧且风格独特的Vimscript插件语言,将被更快、开发者更熟悉的Lua取代;繁重任务会在后台运行,不再导致界面卡死;终端可以直接集成在编辑器内部;并且通过语言服务器协议(LSP),它能像大型商业开发工具一样智能理解屏幕上的代码,而不是让每个开发者自己手动适配。
2014年3月,De Arruda在Bountysource上发起众筹,目标金额为1万美元。最终筹款总额超过3.3万美元。社区早已迫切期待Moolenaar不愿提供的那些新特性。
Moolenaar从未反击。他依旧按照自己一贯的方式维护Vim,仿佛这个分支项目与他毫无关系。但他其实一直在默默关注。当Neovim加入异步支持后,他也在Vim里实现了自己的版本;当Neovim证明Lua是更优秀的扩展语言时,他亲自设计并推出了速度更快的Vim9脚本作为回应。
同出一源,却分化为两款编辑器。
原版由一人坚守,绝不妥协;分支版由社区维护,追求速度。
三、Vim失去了它的创造者
2023年8月3日,Bram Moolenaar因病情迅速恶化去世,享年62岁。两天后,他的家人在Vim Google群组中宣布了这一消息,并于8月16日在他的出生地荷兰小镇利瑟举行了葬礼。
当下最紧迫的问题却与代码无关。他是Vim GitHub账号的唯一拥有者,只有他才能为其他维护者设置权限。他的家人随后修改了权限,以便社区能够继续维护项目。
长期贡献者Christian Brabandt成为了首席维护者。2024年1月,团队发布了Vim9.1,并将此版本献给Moolenaar。该版本改进了虚拟文本、平滑滚动和OpenVMS支持。
此后,Brabandt开始添加一些Moolenaar生前较为保守、不愿轻易改动的内容。例如支持XDG基本目录规范,这样Vim就不会再把配置文件堆积在用户的主目录中。新的维护者也加入进来:Yegappan Lakshmanan、Dominique Pellé、Doug Kearns 等。Vim从一个人的项目变成了团队协作,这在Moolenaar生前是绝对不允许的。2024年11月,Brabandt在VimConf大会上介绍了“新的Vim项目”,探讨了Vim社区在创始人去世后如何继续维护Vim。
2026年2月14日,Vim团队发布了9.2版本。该版本带来了实验性的Wayland支持(一个取代X11的显示协议)、XDG基本目录兼容性、针对HiDPI显示器的现代化默认设置、新的代码补全功能以及增强的文件对比模式。其中对Wayland的适配意义最为深远。当年X.Org取代了XFree86,如今Wayland又接替了 X.Org。而这款诞生于1991年的文本编辑器,也跟随显示系统的迭代迈入了新一代。
项目仍在继续,合并请求每日都会被审核,但Vim的整体风格已经发生改变。

资料来源:作者,《Vim 与 Neovim 的采用与理念比较》
四、社区再次分裂
Bram Moolenaar一生中只抵制过一次Vim的分支,那就是Neovim,分歧的焦点在于速度。2026年3月,他留下的社区再次分裂,这次的争论焦点是一个他生前未能解答的问题:AI生成的代码究竟该不该进入Vim代码库?社区给出了三种答案:其中两派持否定态度,并分别创建了新的Vim分支,旨在排除AI生成的代码。而Vim的维护者则持肯定态度,但规定了一条规则:任何提交AI生成代码的人都必须公开披露其来源。
2026年3月25日,Drew DeVault发表了一篇题为《Vim悼词》的文章,并宣布推出Vim Classic。这是一个严格基于Vim 8.2.0148版本的硬分支,也是Vim 9脚本发布前的最后一次提交,项目托管在他自己的sr.ht平台上。DeVault写道:“在Bram去世几年后,我发现自己陷入了另一个特殊的哀悼时刻:为Vim本身哀悼。”他还补充道:“我不想使用带有冗余杂乱代码的软件。”他以缓慢、审慎的节奏独立维护着这个分支。
另一位维护者NerdNextDoor,在Codeberg上发布了 EVi。这是一个基于2024年1月发布的Vim 9.1.0版本的硬分支,该版本是上游代码库引入任何AI辅助提交前的最后一版。该项目的贡献规则明确表明了其立场:“在此明确表示,我们不会接受AI生成的代码。”
官方主线Vim则选择了中间路线。其贡献指南现已新增“AI使用规范”章节:开发者如果提交AI生成的代码,必须明确声明;且代码必须通过与所有其他补丁相同的编码规范检查,否则会在人工审核前就被自动化风格检测直接拒绝。
五、喜爱程度远超实用性
Neovim目前在GitHub上拥有约10万颗星标,而Vim则拥有约4万颗星标,这个分支项目的星标数已是原版的两倍多。
在2024年Stack Overflow开发者调查中,Neovim的喜爱度高达83%,在开发环境中位列第一;2025年更是连续第五年蝉联此项荣誉。有14%的开发者专门使用Neovim,而Vim与Neovim的合计用户占比达到了全体开发者的38.3%。
六、他留下了什么
我一生都在使用Vim。我记得Neovim刚发布时,社区曾陷入争论:有人认为创建分支是对Moolenaar的不敬。但事实并非如此。这是一个由一人维护、将稳定置于速度之上的项目所必然走向的结局。
Moolenaar开发Vim是因为他想在Amiga电脑上使用vi编辑器。他坚持维护了三十二年,只因无数开发者离不开它。他将其做成公益软件,是因为他看到乌干达的孩子比他更需要帮助,而不是他需要钱。
如今,Vim的启动页面依旧保留着那段文字。每次打开Vim,它都会请求你帮助乌干达基巴莱的孩子们。Bram Moolenaar已经离世,但他的编辑器和慈善事业依然存在。
Neovim证明了,社区在可扩展性上的判断是正确的;Vim则证明了Moolenaar所看重的稳定性同样正确。如今,这两款编辑器都在蓬勃发展。
这就是Vim。
这就是开源精神。
这就是一个人倾尽一生所能创造的事业。
即便在他去世后,也依旧心系乌干达的孤儿。


夜雨聆风