这是用户在 2025-1-12 16:30 为 https://lwn.net/SubscriberLink/1002342/a8d8a17f30968b93/ 保存的双语快照页面,由 沉浸式翻译 提供双语支持。了解如何保存?
|
|
Subscribe / Log in / New account

The state of Vim
Vim 的现状

[LWN subscriber-only content]
[LWN用户专享内容]

Welcome to LWN.net  欢迎访问 LWN.net

The following subscription-only content has been made available to you by an LWN subscriber. Thousands of subscribers depend on LWN for the best news from the Linux and free software communities. If you enjoy this article, please consider subscribing to LWN. Thank you for visiting LWN.net!
以下仅限订阅的内容由 LWN 订阅者提供给您。成千上万的订阅者依靠 LWN 获取 Linux 和自由软件社区的最佳新闻。如果您喜欢这篇文章,请考虑订阅 LWN。感谢您访问 LWN.net!

January 10, 2025  2025 年 1 月 10 日

This article was contributed by Murukesh Mohanan
本文由 Murukesh Mohanan 供稿

The death of Bram Moolenaar, Vim founder and benevolent dictator for life (BDFL), in 2023 sent a shock through the community, and raised concern about the future of the project. At VimConf 2024 in November, current Vim maintainer Christian Brabandt delivered a keynote on "the new Vim project" that detailed how the community has reorganized itself to continue maintaining Vim and what the future looks like.
2023 年,Vim 创始人兼终身仁慈独裁者(BDFL)布拉姆-穆勒纳尔(Bram Moolenaar)的去世震惊了整个社区,并引发了人们对该项目的未来的担忧。在 11 月举行的 VimConf 2024 上,现任 Vim 维护者 Christian Brabandt 发表了关于 "新 Vim 项目 "的主题演讲,详细介绍了社区如何重组以继续维护 Vim 以及未来的发展前景。

Vim after Bram  布拉姆之后的维姆

Brabandt began with his history with Vim: he has been involved in Vim since 2006, and said his first commit to the project was made in the 7.0/7.1 days (sometime around 2006). He started by contributing small patches and fixes, and then contributed larger features such as the gn and gN commands, which combine searching and visual-mode selection, improved cryptographic support using libsodium, maintained the Vim AppImage, and more. He said he became less active in the project around 2022 due to personal and work-related reasons.
Brabandt 首先介绍了他与 Vim 的渊源:他从 2006 年开始接触 Vim,并表示他对项目的第一次提交是在 7.0/7.1 版本(2006 年前后)。他一开始提交的是一些小补丁和修正,后来贡献了更大的功能,如结合了搜索和可视化模式选择的 gngN 命令,使用 libsodium 改进了密码支持,维护了 Vim AppImage 等等。他说,由于个人和工作方面的原因,他在 2022 年左右不再积极参与该项目。

That changed in August 2023, when Moolenaar passed away. Moolenaar had been the maintainer of Vim for more than 30 years; while he had added Brabandt and Ken Takata as co-maintainers of Vim in the years before, most development still flowed through him. With his death, a considerable amount of knowledge was lost—but Brabandt and others stepped up to keep the project alive.
这种情况在 2023 年 8 月发生了改变,因为 Moolenaar 去世了。Moolenaar 作为 Vim 的维护者已经有 30 多年的历史;虽然在此之前的几年里,他还让 Brabandt 和 Ken Takata 成为了 Vim 的共同维护者,但大部分的开发工作仍然是通过他来完成的。随着他的去世,大量的知识也随之流失,但 Brabandt 和其他人挺身而出,使项目得以延续。

Moolenaar was the only owner of the Vim GitHub organization at the time, so only his account could change certain settings. Initially, contributors tried to use the GitHub deceased user policy to add owners to the organization. That was quite an involved process, and it soon became apparent that the end result would be the deactivation of Moolenaar's account. Having Moolenaar's account be accessible by his family was important, so they abandoned that approach, and instead the family granted access to it as needed for organizational changes.
当时,Moolenaar 是 Vim GitHub 组织的唯一所有者,因此只有他的账户才能更改某些设置。起初,贡献者们尝试使用 GitHub 已故用户策略来为组织添加所有者。这是一个相当复杂的过程,最终的结果显然是停用 Moolenaar 的账户。让 Moolenaar 的家人也能访问他的账户非常重要,因此他们放弃了这种方法,转而根据组织变革的需要授予其家人访问权限。

Charles Campbell (known as "Dr Chip"), a Vim contributor for more than 25 years also decided to retire soon after Moolenaar's death. His departure was followed by an expansion of the team of maintainers, as Yegappan Lakshmanan joined it, with Dominique Pellé, Doug Kearns, and GitHub users "glepnir", "mattn", and "zeertzjq" joining soon after.
查尔斯-坎贝尔(Charles Campbell,人称 "Chip 博士")是一位贡献了超过 25 年的 Vim 维护者,他也在 Moolenaar 去世后不久决定退休。他离开后,维护者团队随之扩大,Yegappan Lakshmanan 加入了团队,Dominique Pellé、Doug Kearns 和 GitHub 用户 "glepnir"、"mattn "和 "zeertzjq "也很快加入。

More than just the source code
不仅仅是源代码

He stressed that maintaining Vim is not just about the source code. There are quite a few other things to be managed, such as the Vim web site, FTP server, security disclosures, Vim communities on other sites such as Reddit and Stack Exchange, and more.
他强调,维护 Vim 不仅仅是源代码的问题。还有很多其他事情需要管理,比如 Vim 网站、FTP 服务器、安全披露、Reddit 和 Stack Exchange 等其他网站上的 Vim 社区等等。

Vim's site needed work. The design, and most of the code, had been unchanged for quite a while—until 2023, it was based on PHP 5. In recent times, there had been a few occasions where the web site was unstable, and so he started looking for a new host in 2024. The move involved an upgrade to PHP 8, for which some of the code had to be rewritten. Brabandt thanked Mark Schöchlin, who stepped up to take care of all this.
Vim 的网站需要改进。网站的设计和大部分代码已经有一段时间没有变化了--直到 2023 年,网站还是基于 PHP 5。 最近,网站出现了几次不稳定的情况,因此他在 2024 年开始寻找新的主机。这次搬迁涉及到 PHP 8 的升级,为此必须重写部分代码。Brabandt 对马克-舍赫林(Mark Schöchlin)表示感谢,是他主动承担了所有这些工作。

He acknowledged that the design has been pretty much unchanged since 2001, doesn't look modern, and can be scary to new users. There has been some work on redesigning it, but the first attempt hasn't been that successful. He prioritizes consistency and does not wish to scare away longtime users.
他承认,自 2001 年以来,该网站的设计几乎没有变化,看起来并不现代,新用户可能会感到害怕。已经开展了一些重新设计的工作,但第一次尝试并不成功。他将一致性放在首位,不希望吓跑长期用户。

DNS was also troublesome—the vim.org domain was managed by Stefan Zehl, but Moolenaar also owned a number of other domains such as vim8.org, vim9.org, etc. Thankfully, SSL certificates were already managed using Let's Encrypt, so Brabandt had no problems there. Several email addresses, such as bram@vim.org, bugs@vim.org, etc., were forwarded to Moolenaar's personal email; those have since been updated to point to Brabandt's address instead. The FTP server was hosted by NLUUG, but he decided to retire it and says that he hasn't received any complaints so far.
DNS 也很麻烦-- vim.org 域名由 Stefan Zehl 管理,但 Moolenaar 还拥有其他一些域名,如 vim8.orgvim9.org 等。幸好 SSL 证书已经使用 Let's Encrypt 进行管理,因此 Brabandt 在这方面没有遇到任何问题。一些电子邮件地址,如 bram@vim.orgbugs@vim.org 等,被转发到了 Moolenaar 的个人邮箱;这些地址已经更新,改为指向 Brabandt 的地址。FTP 服务器由 NLUUG 托管,但他决定将其退役,并表示迄今为止尚未收到任何投诉。

ICCF Holland  荷兰 ICCF

As readers might know, Vim is charityware, and the charity of choice is ICCF Holland, founded by Moolenaar. Brabandt said that the ICCF is very much alive, and plans to reorganize and restructure itself. Quite a few users started donating after Moolenaar's passing, and in 2023, it raised about €90,000. The project plans to continue to work with ICCF and doesn't want to change ICCF's association with Vim. He noted that there is no sponsorship for the maintainers, all of whom are working for free. Traditionally, all money raised has been given to the ICCF and he has no plans to change that. Brabandt said he earns enough from his job that he doesn't need assistance to work on Vim, so he's happy to let all donations go to ICCF.
读者可能知道,Vim 是一个慈善软件,选择的慈善机构是由 Moolenaar 创建的荷兰 ICCF。Brabandt 说,ICCF 还很有活力,并计划进行重组和改组。穆莱纳尔去世后,不少用户开始捐款,2023 年,该项目共筹集到约 9 万欧元。该项目计划继续与 ICCF 合作,不想改变 ICCF 与 Vim 的联系。他指出,维护者没有任何赞助,他们都是免费工作。传统上,所有筹集到的资金都交给了 ICCF,他不打算改变这种情况。Brabandt 说,他的工作收入足以让他在 Vim 上工作时不需要援助,因此他很乐意将所有捐款交给 ICCF。

As an incentive to donate, Moolenaar had allowed people who donated to ICCF to vote on Vim feature requests. Donors to the ICCF could link to their Vim.org account when donating, and then vote on features. This is one aspect that he no longer sees a need for, now that issues and enhancements are discussed on GitHub, and so has decided to shut this down. Linking the accounts and donations was also not easy for Brabandt—he was not sure how Moolenaar did this in the past.
为了鼓励人们捐款,Moolenaar 允许向 ICCF 捐款的人对 Vim 功能请求进行投票。ICCF 的捐赠者可以在捐赠时链接到他们的 Vim.org 账户,然后对功能进行投票。现在问题和增强功能都可以在 GitHub 上讨论,他认为这一点已不再有必要,因此决定将其关闭。链接账户和捐赠对 Braband 来说也不容易--他不确定 Moolenaar 过去是如何做到这一点的。

Communication channels  沟通渠道

He also talked about the community centered around the Vim mailing lists, which are hosted on Google Groups. In May 2024, he received an automated message from Google informing him that all content from the vim-dev list had been blocked due to spam or malware. This caused a fair bit of trouble, and while it was restored in around a day or so, he still does not know what the exact problem was. There has been some consideration of self-hosting the list, but one drawback is that everyone would have to sign up again. The mailing list is no longer that active now, with more of the community conversations happening on Reddit or Stack Exchange.
他还谈到了以 Google Groups 上的 Vim 邮件列表为中心的社区。2024 年 5 月,他收到了一条来自 Google 的自动消息,通知他 vim-dev 列表的所有内容都因垃圾邮件或恶意软件而被阻止。这给他带来了不小的麻烦,虽然一天左右就恢复了,但他仍然不知道问题到底出在哪里。他曾考虑过自行托管该列表,但缺点是每个人都必须重新注册。现在邮件列表不再那么活跃了,更多的社区对话发生在 Reddit 或 Stack Exchange 上。

Security reporting had to be addressed as well. A couple of years ago, people were reporting issues on the Huntr platform. There were quite a few open issues which have since been taken care of. Huntr was acquired by another company in 2023, which refocused it entirely on AI and shut down general open-source vulnerability reporting.
还必须解决安全报告问题。几年前,人们曾报告过 Huntr 平台上的问题。当时有不少公开的问题,后来都得到了解决。2023 年,Huntr 被另一家公司收购,该公司将重点完全放在人工智能上,并关闭了一般的开源漏洞报告功能。

Now, Vim is accepting security reports via email or GitHub, and publishing vulnerabilities via GitHub security advisories. There is a private mailing list for as-yet unpublished security issues, and emails are forwarded to all maintainers. Brabandt has started adding a [security] tag to commit messages for marking security fixes, and such commits are announced on the oss-security list (the most recent being from October) and to maintainers of distribution packages.
现在,Vim 通过电子邮件或 GitHub 接受安全报告,并通过 GitHub 安全公告发布漏洞。我们还为尚未发布的安全问题设立了私人邮件列表,并将邮件转发给所有维护者。Brabandt 已开始在提交信息中添加 [security] 标记,用于标记安全修复,此类提交会在 oss-security 列表中公布(最近一次是在 10 月份),并向发行版软件包的维护者公布。

Maintenance mode  维护模式

Brabandt then showed the contribution graph, to demonstrate that development did not stop after Moolenaar passed away. There was a slowdown as Moolenaar's health deteriorated, and then a spike as he cleaned up the open pull requests (PRs). Version 9.1, dedicated to Moolenaar, was released on January 2, 2024—about four months after his passing.
Brabandt 随后展示了贡献图,以证明开发工作在 Moolenaar 去世后并未停止。随着 Moolenaar 健康状况的恶化,开发进度有所放缓,但随着他清理了开放的拉取请求(PR),开发进度又出现了一个高峰。献给 Moolenaar 的 9.1 版本于 2024 年 1 月 2 日发布--大约在他去世四个月后。

The 9.1 release included improvements to virtual text (which enables completion suggestions and such to appear in the editing area, while not being part of the actual text), smooth scrolling, and OpenVMS support. After 9.1, he started adding more potentially controversial changes, such as support for the XDG base directory specification. Now Vim does not need to litter your top-level home directory: ~/.vimrc or ~/.vim/vimrc still work, but $XDG_CONFIG_HOME/vim/vimrc will now work if neither of the above are present. Another such change is Wayland support. It is not complete yet, and he says he is not sure whether remaining problems with clipboard support are Vim bugs or Wayland ones.
9.1 版本包括对虚拟文本(可在编辑区显示补全建议等,但不是实际文本的一部分)、平滑滚动和 OpenVMS 支持的改进。9.1 之后,他开始添加更多可能引起争议的改动,例如支持 XDG 基本目录规范。现在,Vim 不需要乱丢你的顶级主目录: ~/.vimrc~/.vim/vimrc 仍然有效,但 $XDG_CONFIG_HOME/vim/vimrc 现在可以在上述两个目录都不存在的情况下工作。另一个变化是 Wayland 支持。目前尚未完成,他说他不确定剪贴板支持的剩余问题是 Vim 的 bug 还是 Wayland 的 bug。

As he went through the backlog of PRs, he started developing a policy for merging PRs, prioritizing the need to test things well. Tests are now running with continuous integration (CI). He said that it's also important to have good documentation.
在处理积压的 PR 时,他开始制定合并 PR 的政策,优先考虑做好测试工作。现在,测试已在持续集成(CI)中运行。他说,拥有良好的文档也很重要。

Vim has interfaces to quite a few languages, including Python 2 and 3, Ruby, Lua, Tcl, and MzScheme. But Brabandt isn't sure which of these are really needed these days. For example, Python 2, Tcl, and MzScheme (which does not build with the latest version of the language) might need to be retired to reduce the maintenance burden. Other areas to improve include the GUI (GTK 4 has been around for a while, but Vim does not use it yet), support for advanced terminal features, and better spell checking (which has largely remained unchanged since Vim 7). Support for the tree-sitter parser generator is wished-for, but it is controversial, and he does not see it coming to Vim soon.
Vim 有许多语言的接口,包括 Python 2 和 3、Ruby、Lua、Tcl 和 MzScheme。但 Brabandt 并不确定其中哪些是现在真正需要的。例如,Python 2、Tcl 和 MzScheme(不能与最新版本的语言一起构建)可能需要退役,以减轻维护负担。其他需要改进的地方包括图形用户界面(GTK 4 已经存在了一段时间,但 Vim 还没有使用它)、对高级终端功能的支持,以及更好的拼写检查(自 Vim 7 以来,拼写检查功能基本保持不变)。他希望 Vim 能支持树形坐标解析器生成器,但这一功能存在争议,他认为 Vim 不会很快支持这一功能。

He knows there have been some significant changes in Neovim, but he's not sure how many of those can come to Vim. There have been small changes in Vim, but for major changes, you need community support. He does not want to make backward-incompatible changes and is quite hesitant to merge changes that might break things. He said he has to keep in the mind the whole picture, especially the expectations of users, when dealing with PRs. Currently, he said that Vim is more-or-less in maintenance mode.
他知道 Neovim 已经发生了一些重大变化,但他不确定其中有多少变化会出现在 Vim 中。Vim 已经有了一些小改动,但对于重大改动,你需要社区的支持。他不希望做出向后不兼容的改动,也不愿意合并可能会造成破坏的改动。他说,在处理 PR 时,他必须考虑全局,尤其是用户的期望。他说,目前 Vim 基本上处于维护模式。

He said he has created an internal repository to keep track of stakeholders and to ensure that if something were to happen to him, other maintainers could pick up where he left off.
他说,他已经创建了一个内部资源库来跟踪利益相关者,并确保如果他发生意外,其他维护者可以接替他的工作。

Brabandt recommended that those new to the project start by making small contributions and becoming familiar with the codebase. He had some pointers for developers. He said it is important to use a defensive style with C to ensure that new bugs aren't being introduced. One should use Coverity, a static-analysis tool, to scan for defects. Some parts of the Vim codebase are complex, he said, and need to be refactored into more manageable units if possible.
Brabandt 建议刚加入项目的人先做一些小贡献,熟悉代码库。他对开发人员提出了一些建议。他说,在使用 C 语言时,必须使用防御风格,以确保不会引入新的错误。我们应该使用静态分析工具 Coverity 来扫描缺陷。他说,Vim 代码库的某些部分非常复杂,如果可能的话,需要重构成更易于管理的单元。

Maintaining Vim is a full-time job, he said, and it is not only about maintaining the code, but also the community—managing expectations and listening to users' needs. He has to understand the community: what does it want Vim to be? An IDE? Bug-for-bug compatibility with old Vim? How can we make Vim9 script, the new Vim scripting language, more widely used? How can we ensure that the Vim community remains healthy? He ended his talk by thanking all the Vim contributors and then took a few questions.
他说,维护 Vim 是一项全职工作,不仅要维护代码,还要维护社区--管理期望值并倾听用户的需求。他必须了解社区:社区希望 Vim 成为什么?集成开发环境?与旧版 Vim 兼容?如何让新的 Vim 脚本语言 Vim9 脚本得到更广泛的使用?如何确保 Vim 社区的健康发展?最后,他感谢了所有 Vim 的贡献者,并回答了几个问题。

Questions  问题

One audience member asked about the difference between Vim and Neovim's maintenance model. Since most PRs are still merged by Brabandt, would that make him the new BDFL for Vim?
一位听众询问了 Vim 与 Neovim 维护模式的区别。既然大多数 PR 仍由 Brabandt 负责合并,那他会不会成为 Vim 的新 BDFL?

Brabandt emphatically denied being a BDFL. Currently, he merges most changes because the version number has to be incremented with each change, so multiple people merging can introduce conflicts. However, when he was on vacation, he handed over the main maintainership to Lakshmanan. He emphasized that it's a community project, and he listens to the community before making decisions. It just happens that at this time the other maintainers don't want to merge changes themselves and instead defer to Brabandt, which is fine with him.
Brabandt 坚决否认自己是 BDFL。目前,他负责合并大部分变更,因为每次变更都要递增版本号,所以多人合并会带来冲突。不过,当他休假时,他把主要维护工作交给了拉克什曼南。他强调说,这是一个社区项目,他在做决定之前会听取社区的意见。恰好此时其他维护者不想自己合并修改,而是听从 Brabandt 的意见,他对此也没意见。

Another member of the audience wondered about language barriers, since there are many Japanese members of the Vim community as well as many languages in Europe, etc. Brabandt answered that, as an international project, the primary language for working on Vim is English. He also noted that it is easier these days to collaborate across languages thanks to ChatGPT and translation tools, but it still happens that some users do not communicate in English well, and that makes it harder to understand their needs.
另一位听众想知道语言障碍的问题,因为 Vim 社区有很多日本成员,欧洲等地也有很多语言。Brabandt 回答说,作为一个国际项目,Vim 的主要工作语言是英语。他还指出,由于有了 ChatGPT 和翻译工具,如今跨语言协作变得更加容易,但仍有一些用户的英语沟通能力不佳,这使得理解他们的需求变得更加困难。

The rest of VimConf 2024
VimConf 2024 的其他内容

VimConf was first held in 2013 by the Japanese Vim user group vim-jp. Since then, the group has organized it every year, until 2020 when VimConf was canceled due to COVID. After a hiatus, it resumed in 2023 with a scaled-down version. The full-fledged edition returned to Akihabara, Tokyo on November 23, 2024.
VimConf 由日本 Vim 用户组 vim-jp 于 2013 年首次举办。从那时起,该组织每年都会举办,直到 2020 年因 COVID 而取消。经过一段时间的停办,该会议于 2023 年以缩减版的形式恢复举办。2024 年 11 月 23 日,正式版的 VimConf 在东京秋叶原举行。

Even though most of the organizers and attendees are Japanese, VimConf strives to be welcoming to all. Presentation materials are expected to be in English, and live translation is provided in both Japanese and English for keynotes and regular presentations, except for lightning talks. PDFs for the talks are available on VimConf's website, and all of the talks are now on YouTube.
尽管大多数组织者和参会者都是日本人,但 VimConf 仍努力做到欢迎所有人。演讲材料应为英文,除闪电演讲外,主题演讲和常规演讲均提供日语和英语现场翻译。演讲的 PDF 文件可在 VimConf 网站上获取,所有演讲现在都可在 YouTube 上观看。


Index entries for this article
本文索引条目
GuestArticles  访客文章Mohanan, Murukesh



to post comments
发表评论

Thank you  谢谢

Posted Jan 10, 2025 23:33 UTC (Fri) by decaffeinated (subscriber, #4787) [Link]
发表于 2025 年 1 月 10 日 23:33 UTC(星期五) 作者 decaffeinated(用户, #4787) [ 链接]

I wondered about the state of the project following Bram's passing. Thanks for this informative update.
我很想知道布拉姆去世后项目的进展情况。感谢您提供的最新信息。

The ongoing excellence of LWN reporting is why I am a subscriber.
LWN 持续不断的出色报道是我成为订阅者的原因。

Controversial?  有争议?

Posted Jan 11, 2025 4:08 UTC (Sat) by intelfx (subscriber, #130118) [Link] (3 responses)
发表于 2025 年 1 月 11 日 4:08 UTC(星期六) 作者 intelfx(用户, #130118) [ 链接] (3 个回复)

> Support for the tree-sitter parser generator is wished-for, but it is controversial, and he does not see it coming to Vim soon.
> 他希望支持树状坐标解析器生成器,但这是一个有争议的问题,而且他认为 Vim 不会很快支持这种解析器。

Is there any reason *why* a better syntax support engine would be "controversial"?
更好的语法支持引擎为什么会 "引起争议"?

Controversial?  有争议?

Posted Jan 11, 2025 7:01 UTC (Sat) by kmeyer (subscriber, #50720) [Link] (2 responses)
世界协调时 2025 年 1 月 11 日 7:01 (星期六) 由 kmeyer(用户, #50720)发表 [ 链接] (2 个回复)

Some discussion here I guess: https://github.com/vim/vim/issues/9087 .
我猜这里有一些讨论:https://github.com/vim/vim/issues/9087 。

Controversial?  有争议?

Posted Jan 11, 2025 10:26 UTC (Sat) by intelfx (subscriber, #130118) [Link] (1 responses)
世界协调时 2025 年 1 月 11 日 10:26 (六) 由 intelfx(用户, #130118)发表 [ 链接] (1 条回复)

Oh... I see. The amount of disingenuous arguing in that discussion is just painful to read.
哦......我明白了。这场讨论中虚伪的争论之多,让人看了心疼。

Controversial?  有争议?

Posted Jan 11, 2025 20:37 UTC (Sat) by Heretic_Blacksheep (subscriber, #169992) [Link]
世界协调时 2025 年 1 月 11 日 20:37 (六) 由 Heretic_Blacksheep 发表(用户, #169992) [ 链接]

Skimming through that exchange as a casual vim user really just had me shaking my head. A lot of opinion referencing other opinions without much investigation on where problems actually lie. Clason seems to be the only sane one trying to keep the discussion on track to discuss the underlying technology rather than a potentially problematic & experimental implementation. Most of the rest seem to be conflating neovim's experimental implementation with the Tree-sitter specification/technology itself.
作为一名普通的 vim 用户,我只是粗略地浏览了一下交流内容,就摇了摇头。很多观点都是以其他观点为参考,而没有深入调查问题究竟出在哪里。克拉森似乎是唯一一个理智的人,他试图让讨论保持在讨论底层技术而不是潜在问题和实验性实现的轨道上。其他大多数人似乎都在把 neovim 的实验性实现与树坐标规范/技术本身混为一谈。


Copyright © 2025, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
评论和公开张贴内容的版权归创作者所有。

Linux is a registered trademark of Linus Torvalds
Linux 是 Linus Torvalds 的注册商标