## Vim 的挽歌
A Eulogy for Vim

原始链接: https://drewdevault.com/2026/03/25/2026-03-25-Forking-vim.html

## 个人分支:悼念 Vim 与它的未来 作者分享了与 Vim 文本编辑器之间深厚的个人联系,他们几乎所有的写作和编码都使用 Vim。在 Vim 的创造者 Bram Moolenaar 去世时,他们感到意想不到的失落,敬佩他即使从未谋面也表现出的利他主义。 然而,新的悲伤来源出现了:大型语言模型 (LLM) 被整合到 Vim 和 NeoVim 的开发中。作者认为生成式人工智能存在严重问题,并列举了其环境影响、强化剥削性劳动实践以及对社会问题的贡献,例如法西斯主义的抬头。 为了调和他们的价值观与他们喜爱的编辑器,他们分叉了 Vim,创建了“Vim Classic”。这个分支基于 Vim 8.2,*早于* Vim9 Script 的引入,优先考虑与现有插件的兼容性,并避免了新功能的复杂性。这是一项有意识的努力,旨在维护一个干净、符合伦理道德的工具。 作者邀请那些与他们有相同担忧的人使用和贡献 Vim Classic,从而围绕这款强大编辑器的遗留版本建立社区。

## Vim 与 AI 辩论:黑客新闻总结 黑客新闻上最近的一篇文章讨论了 Drew DeVault 分叉 Vim 8.2.0148 的决定,主要原因是担心 AI 可能被整合到编辑器中。用户们正在争论这一立场的优劣,一些人支持他保持 Vim 远离 AI 影响的愿望,而另一些人则认为在现代软件开发中完全避免接触 AI 代码是不现实的。 评论者还质疑了文章对 AI 的更广泛批评,指出许多引用的负面后果——资源枯竭、污染、钴等材料的伦理采购——是任何大规模工业活动的固有问题,并非 AI 所独有。 尽管不同意 DeVault 关于 AI 辅助编码(特别是“氛围编码”)的立场,但许多人仍然对他作为一名程序员和坚持原则的个人表示深深的尊重。这场讨论凸显了开源理念与快速发展的 AI 技术之间的日益增长的紧张关系。
相关文章

原文

Vim is important to me. I’m using it to write the words you’re reading right now. In fact, almost every word I have ever committed to posterity, through this blog, in my code, all of the docs I’ve written, emails I’ve sent, and more, almost all of it has passed through Vim.

My relationship with the software is intimate, almost as if it were an extra limb. I don’t think about what I’m doing when I use it. All of Vim’s modes and keybindings are deeply ingrained in my muscle memory. Using it just feels like my thoughts flowing from my head, into my fingers, into a Vim-shaped extension of my body, and out into the world. The unique and profound nature of my relationship with this software is not lost on me.

A picture of my right hand, with the letters “hjkl” tattooed on the wrist

I didn’t know Bram Moolenaar. We never met, nor exchanged correspondence. But, after I moved to the Netherlands, Bram’s home country, in a strange way I felt a little bit closer to him. He passed away a couple of years after I moved here, and his funeral was held not far from where I lived at the time. When that happened, I experienced an odd kind of mourning. He was still young, and he had affected my own life profoundly. He was a stranger, and I never got to thank him.

The people he entrusted Vim to were not strangers, they knew Bram and worked with him often, and he trusted them. It’s not my place to judge their work as disrespectful to his memory, or out of line with what he would have wanted. Even knowing Bram only through Vim, I know he and I disagreed often. However, the most personal thing I know about Bram, and that many people remember about him, was his altruistic commitment to a single cause: providing education and healthcare to Ugandan children in need. So, at the very least, I know that he cared.

I won’t speculate on how he would have felt about generative AI, but I can say that GenAI is something I care about. It causes a lot of problems for a lot of people. It drives rising energy prices in poor communities, disrupts wildlife and fresh water supplies, increases pollution, and stresses global supply chains. It re-enforces the horrible, dangerous working conditions that miners in many African countries are enduring to supply rare metals like Cobalt for the billions of new chips that this boom demands. And at a moment when the climate demands immediate action to reduce our footprint on this planet, the AI boom is driving data centers to consume a full 1.5% of the world’s total energy production in order to eliminate the jobs of the poor and replace them with a robot that lies.

Meanwhile, this whole circus is enabling the rising tide of fascism around the world, not only by supercharging propaganda but also by directly financially supporting fascist policies and policymakers. All this to enrich the few, centralize power, reduce competition, and underwrite an enormous bubble that, once it bursts, will ruin the lives of millions of the world’s poor and marginalized classes.

I don’t think it’s cute that someone vibe coded “battleship” in VimScript. I think it’s more important that we stop collectively pretending that we don’t understand how awful all of this is. I don’t want to use software which has slop in it. I do what I can to avoid it, and sadly even Vim now comes under scrutiny in that effort as both Vim and NeoVim are relying on LLMs to develop the software.

So this is how, a few years after Bram’s passing, I find myself in another unusual moment of mourning: mourning Vim itself. What an odd feeling.


To keep my conscience clear, and continue to enjoy the relationship I have with this amazing piece of software, I have forked Vim. You can find my fork here: Vim Classic.

The choice of which version to use as the basis for a fork was a bit difficult. The last version of Vim released during Bram’s lifetime was Vim 9.0. To me, that seems like a good starting point. But, in the end, I chose to base my fork on Vim 8.2.0148 instead. Patch 148 was the patch immediately prior to the introduction of Vim9 Script, Vim 9.0’s flagship feature.

I’m sure Bram worked hard on Vim9 script, and I want to honor that. At the same time, it was still very new when he passed away, and the job of fully realizing its potential was handed down to the current maintainers. Its absence from Vim Classic is an honest assessment that I don’t have the time or energy to try to sort out all of the work on Vim9 which followed in Bram’s footsteps, and decide what stays and what goes. It seems like a useful line to draw in the sand: Vim Classic is compatible with legacy plugins, but not the newfangled stuff.

Since forking from this base, I have backported a handful of patches, most of which address CVEs discovered after this release, but others which address minor bug fixes. I also penned a handful of original patches which bring the codebase from this time up to snuff for building it on newer toolchains. My old vimrc needed very few changes to work on this version of Vim, and all of my plugins work with the exception of fzf.vim, which I would like to fix at some point (or maybe a sympathetic reader is willing to work on backporting the necessary changes).

I plan to use this for a little while, look for sore points and rough edges, collect feedback from other users, and then tag a little release soon. Going forward, maintenance will be slow and quiet. I welcome your patches, particularly to help with maintaining the runtime scripts, stuff like making sure new language features end up in the syntax files. I’ll also gladly accept new bug fixes, and maybe even a few new features if a good case can be made for including them. Backporting small patches from Vim upstream will be considered, with extra scrutiny.

In short, I invite you to use Vim Classic, if you feel the same way as me, and to maintain it with me, contributing the patches you need to support your own use cases.

联系我们 contact @ memedata.com