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!
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 年前后)。他一开始提交的是一些小补丁和修正,后来贡献了更大的功能,如结合了搜索和可视化模式选择的 gn 和 gN 命令,使用 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
他强调,维护 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
他承认,自 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.org 、 vim9.org 等。幸好 SSL 证书已经使用 Let's Encrypt 进行管理,因此 Brabandt 在这方面没有遇到任何问题。一些电子邮件地址,如 bram@vim.org 、 bugs@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
读者可能知道,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 |
Thank you 谢谢
Posted Jan 10, 2025 23:33 UTC (Fri)
by decaffeinated (subscriber, #4787)
[Link]
发表于 2025 年 1 月 10 日 23:33 UTC(星期五) 作者 decaffeinated(用户, #4787) [ 链接]
Posted Jan 10, 2025 23:33 UTC (Fri)
by decaffeinated (subscriber, #4787)
[Link]
发表于 2025 年 1 月 10 日 23:33 UTC(星期五) 作者 decaffeinated(用户, #4787) [ 链接]
我很想知道布拉姆去世后项目的进展情况。感谢您提供的最新信息。
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 个回复)
Posted Jan 11, 2025 4:08 UTC (Sat)
by intelfx (subscriber, #130118)
[Link] (3 responses)
发表于 2025 年 1 月 11 日 4:08 UTC(星期六) 作者 intelfx(用户, #130118) [ 链接] (3 个回复)
> 他希望支持树状坐标解析器生成器,但这是一个有争议的问题,而且他认为 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 个回复)
Posted Jan 11, 2025 7:01 UTC (Sat)
by kmeyer (subscriber, #50720)
[Link] (2 responses)
世界协调时 2025 年 1 月 11 日 7:01 (星期六) 由 kmeyer(用户, #50720)发表 [ 链接] (2 个回复)
我猜这里有一些讨论: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 条回复)
Posted Jan 11, 2025 10:26 UTC (Sat)
by intelfx (subscriber, #130118)
[Link] (1 responses)
世界协调时 2025 年 1 月 11 日 10:26 (六) 由 intelfx(用户, #130118)发表 [ 链接] (1 条回复)
哦......我明白了。这场讨论中虚伪的争论之多,让人看了心疼。
Controversial? 有争议?
Posted Jan 11, 2025 20:37 UTC (Sat)
by Heretic_Blacksheep (subscriber, #169992)
[Link]
世界协调时 2025 年 1 月 11 日 20:37 (六) 由 Heretic_Blacksheep 发表(用户, #169992) [ 链接]
Posted Jan 11, 2025 20:37 UTC (Sat)
by Heretic_Blacksheep (subscriber, #169992)
[Link]
世界协调时 2025 年 1 月 11 日 20:37 (六) 由 Heretic_Blacksheep 发表(用户, #169992) [ 链接]
作为一名普通的 vim 用户,我只是粗略地浏览了一下交流内容,就摇了摇头。很多观点都是以其他观点为参考,而没有深入调查问题究竟出在哪里。克拉森似乎是唯一一个理智的人,他试图让讨论保持在讨论底层技术而不是潜在问题和实验性实现的轨道上。其他大多数人似乎都在把 neovim 的实验性实现与树坐标规范/技术本身混为一谈。