ebf789f04825377e11040f4535fa0025.gif

作者 | 王启隆

出品 | CSDN(ID:CSDNnews)

昨日,Vim 项目的 BDFL、Vim 之父 Bram Moolenaar 的家人发布讣告,为全世界开发者带来了一个悲伤的讯息——“我们怀着沉重的心情通知您,Bram Moolenaar 于 2023 年 8 月 3 日离世。

Moolenaar 享年 62 岁,死于“在过去几周内病情迅速恶化”。

bbd239c99f97d8c03c3c885c48e3fa63.png

任何使用过 Vim 的人都了解 Moolenaar 有多么慷慨。Moolenaar 在几十年前率先提出了慈善软件的概念,并在世界范围内大力普及。直到今天,Vim 用户仍然可以通过键入命令 :help Uganda 或 :help ICCF 来查看许可证,每个注册捐赠至少 10 欧元的 Vim 用户和赞助商将能够投票支持新功能。

“Vim 是慈善软件,”Moolenaar 在其开创性许可证中写道。“你可以随意使用和复制它。”

6d0bd53bc4aa481d9aba222bd9e3e0b5.png

就在去年 2 月 20 日,Vim 项目的重要维护者 Sven Guckes 在柏林去世。Moolenaar 当时还发布了一封邮件以表痛失知音,并宣布要将 Vim 的下一个大版本 9.0 献给这位挚友。

d00baa4fd1bb2fcfe134408d311fbec0.png

令人惋惜的是,Moolenaar 也在今年随友人共谢人间。这对整个开发社区来说是一个沉重的损失,在仅仅一个月之前,Moolenaar 还在不断地对 Vim 进行更新和修改工作。这两次逝世将 Vim 社区笼罩在悲伤之中,重要的维护者和创始人相继离去,留下了难以填补的空缺。

a9d1c22f7c29b841f83d589c08a22711.png

“万里挑一”的编辑器

Vim 将不少人引领至程序员之路,成为了许多程序员生活的一部分,不少科幻小说都会提及 Vim,它从 Unix 开始走过了漫长的旅程,适应了许多其他的操作系统。因此,有许多网友在今天都发布了悼文。即使是经历了编辑器领域最初的“圣战”之一:Emacs 与 Vi 之争,那些坚持认为自己选择的编辑器是完美典范的人,也为 Moolenaar 这位天才的逝世感到惋惜。

d0f6100cf6ec613626db61a9d5063016.png

还有一位网友,分享了自己的个人轶事:

5a5a89b29f0ad52e02e017c4c6d8b9f0.png

翻译:

当我刚开始涉足软件领域时,我非常坚持“思考的速度要比打字的速度要快”这一理念,幸运的是,我结识了一些非常专业的黑客,其中一位是绝对的“Vim 巫师”。

他是一个非常谦逊的人,所以我花了一些时间才知道他如此精通 Vi 的原因是他曾经写过一个真正的 Vi,叫做 Xvi。

我问他,既然能写出 Xvi,为什么还要使用 Vim,而他的回答令我终生难忘:“编写一个 Vi 是任何程序员只要付出努力就能做到的事情,但只有像 Bram 这样的人才能写一个和 Vim 一样好的 Vi。显然我会选择更好的工具。

Bram 改变了我们许多人的生活和职业,包括我在内。我从未与他亲自交往过,但从我所见的一切来看,他谦逊、聪明、乐于助人,且认真对待自己的工艺。

英雄永垂不朽。

Bram Moolenaar 是荷兰人,他出生于 1961 年,在 24 岁那年毕业于代尔夫特理工大学,获得电气工程学位。1988 年,Moolenaar 给自己买了一台 Amiga 电脑。由于他习惯使用 Vi 进行编辑,因此他首先在 Amiga 上寻找类似 Vi 的程序。

Moolenaar 测试了 Vi 的许多“克隆”版本,但没有一个能让他满意;所以他选择了最好的一个,并开始加以改进。最初,Moolenaar 的主要目标是能够做 Vi 所能做的一切。紧接着,他逐渐添加了一些附加功能,例如多级撤消。

1988 年,Moolenaar 在 Amiga 的公共域磁盘集(由 Fred Fish 制作)上发布了一个 Vim 版本(当时还被称为“Vi IMitation”)。发布后的反响不错,逐渐开始有人向 Moolenaar 发送补丁,还有人努力将 Vim 移植到其他平台,例如 MS-DOS 和 Unix。

c869a4181baa3f7bd15cce898c7bf7a8.png

Vim 的开始界面

起初,Vim 只是供 Moolenaar 自己使用。一段时间后,他觉得 Vim 对其他人有用,并将其发送到世界各地。从那时起,Moolenaar 越来越努力地让这个程序适合广大开发者。他生前曾说:“创造有用的东西很有趣。此外,还有一群很好的共同作者和高级用户,这非常鼓舞人心。”

于是,Moolenaar 不断添加了更多功能,到 1.22 版本,Vim 包含了比 Vi 更多的功能。于是,Moolenaar 决定将名称从“Vi IMitation”更改为“Vi IMproved”。随着时间的推移,代码被进行了无数次重新设计和扩展,以至于原始的“克隆”版本 Vi 几乎没有保留下来。

Moolenaar 曾经总结过 Vim 的优点:

“现在我很难想出使用 Vi 而不是 Vim 的理由。我建议所有 Vi 用户切换到 Vim。优点很长,这里仅列出一些。”

  • 无限制的行长度,允许 NUL 字节:可以编辑任何文件,包括二进制文件。

  • 多级撤消和重做:无需担心在意外打开大写锁定时破坏文件。

  • 多窗口和缓冲区:同时编辑多个文件,在它们之间复制文本。

  • 语法高亮:快速理解文本的结构并发现错误。

  • 命令行历史和自动完成:更正拼写错误,调用旧命令,快速输入长文件名。

  • 删除和插入矩形文本区域:编辑表格。

  • 错误消息解析:运行编译器并立即跳转到发现错误的位置。

  • 带超链接的在线帮助:查找任何命令的全面文档并跳转到相关主题。

  • 强大的脚本语言:添加自己的扩展功能。

......

42d9841c907d4b0bb6ff39ce902a1020.png

享誉无数的“慈善软件

Vim 开源且自由分发,用户不需要支付费用来使用它。尽管如此,许多经常使用 Vim 的人还是希望能以某种方式回报 Moolenaar 的工作。于是,他想到了慈善软件的概念。

慈善软件的基本想法就是要求每个使用 Vim 的人给慈善机构捐赠。因此,使用 Vim 是免费的,但如果有人认为它值得付费,就可以把那些钱捐给慈善机构。

想法形成后,Moolenaar 开始选择合适的慈善机构——荷兰国际儿童保育基金会(ICCF Holland)。

1994 年,Moolenaar 曾经作为志愿者在乌干达南部的一个项目中工作了一年,这个地区受到艾滋病的严重打击,约 10% 到 30% 的成年人被艾滋病所感染。许多家庭的父母死去,只留下了他们的孩子。这个项目以多种方式帮助这些需要帮助的孩子,他们会为孩子找到一个新家,确保孩子能够上学,获得个性化的关怀。

4359ca358a33b5a7ce50c20ea6a4e2f1.jpeg

Nabasagi Morine,ICCF Holland 资助的儿童之一

在 Moolenaar 从乌干达回来后,他的心仍然留在那里。他决定至少以筹集资金的方式来继续支持这个项目。因此,他开始呼吁 Vim 的用户考虑为乌干达的孤儿捐赠。他还建立了一个收养计划,用户可以为一个孩子提供经济支持,让孩子得到长期的帮助。由于他们只与志愿者合作,并且资金直接发送到项目中,所以几乎全部的筹款都真正用在了乌干达。

Moolenaar 的行动也得到了回报,ICCF 的筹款日益增多,Vim 也开始赢得多项奖项,并被认为是最受欢迎的文本编辑器之一。

514ca5c7c260b43a9c640f34697ba3dc.png

Linux Journal 的读者在 2001 年、2002 年、2003 年、2004 年和 2005 年将 Vim 评选为他们最喜欢的文本编辑器。

daf0ba7f24afe9e4625a40d57cb96c1c.png

1999 年,Vim 入围 LinuxWorld “编辑的选择”奖决赛。该奖项由 Debian 版本 Vim 的开发者 Wichert Akkerman 在 LinuxWorld 会议上颁发。

4046a2285048ce83b36c160bfaf597ad.png

2000 年 2 月,在纽约举行的 LinuxWorld 博览会上,Vim 获得了“开源文本编辑器”类别的 Slashdot Beanie 奖提名。

eeeac0a0280bd617e9144398ed5b184f.png

但是,最让 Moolenaar 自豪的还是由 NLUUG 在 2008 年颁发的这个奖项。NLUUG 是荷兰的 Unix 用户团体,今年是他们成立的 40 周年。此前获得该奖项的其他人还包括 Python 之父 Guido van Rossum 和荷兰互联网先驱 Piet Beertema。Moolenaar 在自己的个人主页上记录了对于获奖的喜悦之情。

4be3bc092060d783a1df22f103e4eefe.png

戛然而止的旅程

Moolenaar 热爱旅行,他会在个人网站 moolenaar.net 上记录生活,时不时更新自己旅行的照片。从南半球到北半球,从亚欧大陆到非洲沙漠,哪儿都有他的脚印。

977c86d97ee5dc5540c36aeb20c224d2.png

2006 年,Moolenaar 在中国拍摄了 400+ 张照片

为了记录 2023 年的生活,他还在个人主页上晒了自己制作的日历:由一张纸制成的桌面日历。在折叠后,一侧显示 12 个月的日历。另一面是关于 ICCF-Holland 和 Vim 的简要信息。

5ce85c000017c68f065ab41b01d81057.png

Moolenaar 是一个起源于荷兰的名字。这是一种职业,形容操作磨坊(通常是风车)的人。荷兰曾经有很多风车,它们被用来从圩田抽水、磨面粉、锯木头,以风的力量编织了一段繁荣的岁月。

然而,时间的车轮滚滚向前,荷兰的风车逐渐褪去了昔日的辉煌。如今,荷兰的天际线上已不再是那些翻飞的巨翼,取而代之的是现代科技的轮廓。而在这个风车凋零的时代,Moolenaar 以他的代码诠释了另一种风景。正如他的名字所映照的——在数字时代操作着"风车"的人。

荷兰的风车或许愈发稀少,但风车的精神却在 Moolenaar 的铭志中得以延续。当我们在代码的海洋中航行,仿佛也能感受到那微风拂过风车的声音,那是 Moolenaar 的风,永远在我们心间飘荡。

所幸的是,Vim 项目还会由开源开发者们持续运营下去。

项目的长期贡献者 Christian Brabandt 在闻讯之后发布了帖子(https://groups.google.com/g/vim_dev/c/6_yWxGhB_8I/m/ibserACYBAAJ),他在表达了自己的惊讶与哀伤的同时,宣布会携手其他贡献者一同延续这个项目:

就像你们所有人一样,当我听到这个消息时,我感到非常震惊。对 Vim 社区而言,Bram 是一位杰出的领袖,我在过去的几年里非常享受与他一起工作。将近 20 年前,我就开始参与 Vim 的开发。

Bram 在创建一个伟大的社区方面给予了我们极大的启发,他通过慈善事业帮助了许多人,也是一位伟大的导师。但是现在他离开得太早了。我们失去了一位伟大的领袖,我很遗憾从未有机会亲自见过他……

然而,对于社区的所有人,我想说:我会继续下去,我希望其他贡献者也能坚持做好工作。我可以访问 Vim 的主页和 Vim 组织(虽然我不确定自己是否有全部权限,但我相信我们会在不久的将来解决细节问题)。

一旦我从度假归来,我会审查 Pull Requests 并进行审查(还会将缺失的补丁提交到 GitHub)。我欢迎任何人为使 Vim 变得更好作出贡献。

我仍然不了解各个领域的内部情况(如 vim9、虚拟文本、语法高亮等),也不知道我能投入多少时间,但我希望我们能够一起继续取得成功。

谢谢,

Chris

Logo

为武汉地区的开发者提供学习、交流和合作的平台。社区聚集了众多技术爱好者和专业人士,涵盖了多个领域,包括人工智能、大数据、云计算、区块链等。社区定期举办技术分享、培训和活动,为开发者提供更多的学习和交流机会。

更多推荐