乐于分享
好东西不私藏

32年,他把一个编辑器留给了全世界……

32年,他把一个编辑器留给了全世界……

又是一个平常的深夜。

你敲完最后一行代码,按下ESC,输入:wq,回车。

文件保存,Vim退出,一切如常。

就像过去的无数个夜晚一样。

但2023年8月3日之后,这个简单的命令,突然有了新的含义。

那一天,Vim的作者Bram Moolenaar因病去世,享年62岁。

全世界数百万程序员还在继续用:wq保存退出,但这一次,他们知道,这个守护Vim 32年的人,已经永远地执行了他人生最后一次:q。

01

一个荷兰程序员的副业

1991年,互联网还是个新鲜玩意儿,Windows 3.0刚刚发布,大部分程序员还在用DOS。

Bram Moolenaar是荷兰的一名程序员,在Amiga电脑上工作。Amiga是当时很流行的个人电脑,但它没有一个好用的文本编辑器。

Bram很喜欢Unix系统上的Vi编辑器,但Amiga上没有。

他做了一个决定:自己移植一个。

没错,就是这么简单的初衷。

他花了几个月时间,写出了第一版Vim(Vi IMproved,改进版的Vi)。

1991年11月2日,Vim 1.14发布。

这是一个完全免费的开源软件,Bram把它放到了网上,供所有人使用。

当时谁也没想到,这个副业项目,会陪伴他接下来的32年。

02

32年:从业余爱好到终身使命

Vim迅速在程序员圈子里流行起来。

为什么?

因为它真的好用。

相比原版Vi,Vim增加语法高亮、多级撤销、分屏编辑、插件系统……这些在今天看来理所当然的功能,在90年代是颠覆性的。

Vim保留Vi的核心哲学:用键盘完成一切操作,不需要鼠标,效率极高。

学会Vim的人,几乎不会再换其他编辑器。

不是因为Vim完美,而是因为,一旦你的手指记住了那些命令,你就再也回不去了。

Bram开始全职维护Vim。

注意,是全职。

他没有像很多开源作者那样,把项目扔给社区,自己去创业或者加入大公司。他一直在维护,一直在更新,一直在回复用户的问题。

32年,超过8000次commit,数不清的bug修复,无数次版本迭代。

他图的是啥呢?

Bram从来没有把Vim商业化。Vim始终是免费的,代码完全开源。

他唯一的商业行为,是在Vim的启动界面放了一行提示:

Help poor children in Uganda!(帮助乌干达的贫困儿童!)

是的,Bram长期支持乌干达的一个儿童慈善项目ICCF Holland。他把Vim用户的捐款,全部用于帮助乌干达的孤儿。

这是一个彻底的理想主义者。

03

他留下的遗产

2023年7月,Bram提交了他人生中最后一次commit。

一个月后,他去世了。

Vim社区震惊了。

因为直到去世前一个月,Bram还在更新代码。很多人甚至不知道他病了。

他就这样,默默地守护了Vim 32年,然后悄然离开。

Vim现在有多重要?

全球数百万程序员在使用Vim,或者使用Vim模式的编辑器(VS Code的Vim插件有超过500万下载量)。

几乎所有Linux服务器上都预装了Vim。

无数技术公司的面试,会问你会用Vim吗?

Vim不仅仅是一个编辑器,它是一种文化,一种信仰,一种用键盘征服世界的程序员美学。

让人感动的是,Vim的许可证非常特殊。

它不是MIT,不是GPL,而是Vim License,一个Bram自己写的协议。

协议的核心内容是:你可以自由使用、修改、分发Vim,但如果你觉得Vim有用,请考虑捐款给乌干达的儿童。

这就是Bram。

他从来没想过靠Vim赚钱,他只想做一个好用的编辑器,然后顺便帮助一些孩子。

04

全世界程序员的告别方式

Bram去世后,Vim社区发起了纪念活动。

很多人在终端输入:help uganda,打开Vim的帮助文档,看到Bram写的那段关于乌干达儿童的介绍。

有人在GitHub上发起了募捐,短短几天就筹集了数十万美元,全部捐给了ICCF Holland。

有人在社交媒体上分享自己学Vim的故事,回忆第一次用:wq保存文件时的激动。

有人说:我每次用:wq,都会想起他。

是的,:wq。

这是Vim最常用的命令之一:保存(write)并退出(quit)。

程序员每天要用无数次:wq。

写完一段代码,:wq。

改完一个bug,:wq。

完成一天的工作,:wq。

但现在,:wq有了新的含义。

它不再只是保存并退出,它是一种告别,一种致敬,一种对Bram的纪念。

每一次:wq,都是在说:

谢谢你,Bram。

谢谢你留下的这个工具。

谢谢你守护了32年。

05

结语

Bram走了,但Vim还在。

每天,全世界数百万程序员打开Vim,敲下:wq。

他们不知道的是,这个简单的命令,连接着一个荷兰程序员32年的坚守。

:wq不是结束。

是传承。

* 本文图片来源于网络,仅用于技术交流分享,如有侵权请联系删除