翻译-Emacs For Everything
March 13, 2025 作者:Joshua Blais
我曾嘲笑过「 Emacs 能做任何事」这个梗,认为一个人可以「生活在 emacs 里」的想法简直疯狂(那是近两年前的一篇帖子,当时我自己都不真正相信这点)。
然而,若有人放任自己被这股潮流裹挟,深入兔子洞足够远时,他会发现计算机本可以成为一个完全集成的环境——在那里,用户的思维与机器融为一体。尽管「脑机接口」的诞生还只是餐桌上的谈资(在我这样阴谋论者家庭中),但自 1976 年起,emacs 就已存在——它是迄今为止最接近人机融合这一理想境界的产物。
是否曾有一刻,我认为这就是每个人都该使用电脑的方式?
不。
我没有 Emacs 无所不能的幻想。
要达到完全依赖 Emacs 作为电脑环境的程度,所需投入的巨大精力对大多数人而言是难以承受的。那些买 MacBook Pro 只为看网飞和「收发邮件」的人,真的需要 Emacs 这种集成式文本界面吗?恐怕不必——这就像用冲击电钻(致敬尼尔·斯蒂芬森的比喻)来拧 1/16 英寸的小螺丝。
但,如果你是个程序员、作家、创意工作者、企业主或单纯患有注意力缺陷多动症(ADHD)的人,「用不用 Emacs」就值得考虑了。
你是否经常花费大量时间处理各种形式的文本?你是否渴望自动化工作流,打造量身定制的完美工具?那么 Emacs 或许就是你梦寐以求却从未知晓的答案。
这值得吗?Emacs 是使用电脑的最佳方式吗?
好吧,我毕竟正在撰写这篇文章,所以我可能有些偏颇。但我会毫不含糊地说,是的——这项投资的回报丰厚,并且在我余生的电脑生涯中还将持续如此。
顺便提一下,在书中,Stephenson 讨论了 Unix,但他确实提到 Emacs 是他当时使用的编辑器,并对此有如下评价:
我使用 Emacs,它或许可以被视为一款核能级的文字处理器。由理查德·斯托曼创造——这就够了。它用 Lisp 编写,这是唯一一种堪称优美的编程语言。它庞大无比,却仅编辑纯 ASCII 文本文件,也就是说,没有字体、加粗或下划线。换言之,微软 Word 将工程师时间投入到邮件合并、在企划备忘录中嵌入长篇动态影像等功能上,而 Emacs 则偏执地将这些精力集中于看似简单实则深奥的文本编辑问题上。如果你是职业作家——即若他人受雇操心你的文字排版与印刷——Emacs 的卓越程度,犹如正午太阳令群星黯然。不仅更大更亮,它简直让其他一切消失无踪。
深不可测的论断。
1. 为什么要这么做?
为何要追求用一个工具处理所有事?
为什么要把所有事情都集中在一个地方处理?而且,为什么要用一款已有近 50 年历史的软件来实现这一点?
尽管使用 Emacs 有诸多理由(包括对普通用户的调侃),但真正的论点通常围绕以下几点:解决上下文切换问题、工具与整个环境的深度集成,以及 Emacs 赋予终端用户的可定制性、可编程性和全面个性化能力(远超当今任何现有工具,是的,甚至包括支持 Lua 的 Neovim)。
因此,虽然我不会去"调侃普通用户",但归根结底只有一个词—— 心流 。
用一句话概括? 上下文切换对知识工作者而言代价极其高昂 。
用一段更啰嗦的文字阐述?
近期神经科学研究表明,日常工作中上下文切换和多任务处理的成本约占我们 60% 的时间——这个数字触目惊心,注意力分散后平均需要 23 分钟才能重新投入任务。有研究甚至断言「上下文切换是开发者的头号生产力杀手」。尽管我首先要指出,过度追求效率反而容易陷入拖延症,但即便在 8 小时工作制中提升 20% 效率也绝非小事。显然,若想完成更多工作,我们必须像守护黄金般捍卫专注时间——而 Emacs 正日益成为这道防护栏。由于其「万物皆可通过单一界面访问」的哲学理念,相比在 12 个不同应用工具间来回切换,它带来的干扰要少得多。这个环境本身已化身为终极生产力场域。
当我说「心流」时,实际指的是 和谐融合 ,甚至可以说是与环境的 浑然一体 。Emacs 是唯一能让你拥有与文本交互的终极「统一认知模型」的工具。而如果你对计算机有所了解,就会明白 万物皆文本 。
唐纳德·特朗普可能会说「哇——万物皆计算机」,但计算机会说「万物皆文本」。
这一点再怎么强调都不为过——当我们在计算环境中将一切简化为文本时,实际上就将其能力提升到了最高水平。这样一来,所有内容都变得可搜索、可重现、可版本控制,并且具有无限的可塑性。文本可以完全按照我们认为合适的方式进行塑造和调整。通过保持文本的纯粹性,而不是以某种专有的糟糕方式将其抽象化,我们作为用户的能力得到了增强。
2. 瞬息全宇宙
当你准备写邮件时,需要完成以下步骤:打开邮件客户端、点击「撰写邮件」、找到联系人、撰写内容、校对文字,最后发送。如果此前正在进行其他工作,原本可能保持的心流状态几乎荡然无存,要重新恢复到那种专注状态又得花费不少时间。
相反,你本可以在大约 3 秒内将「待办事项」记录到你的 inbox.org 文件中,然后继续手头的工作,直到真正需要写邮件的时候。这样你就能毫无上下文切换地回到原任务,保持那种高效的心流状态。
当你准备写这封邮件时,可以在 Emacs 的 MU4E 模式下操作,调用那个待办事项(或许还有相关联系人信息),撰写邮件、发送,甚至还能包含你未被中断的工作内容。邮件本质是文本,因此你能使用所有强大的编辑器功能(自动补全、拼写检查、代码片段等),很可能只用传统 Office365/Thunderbird/Gmail 等工具一半的时间就能完成。
如果这个场景没有让你眼前一亮,或许 Emacs 并不适合你。但如果你理解其中的差异,现在你就能在所有工作流程、所有场景、整台设备上实现这种操作。Emacs 将成为你的操作系统(除了重度图像/视频处理或浏览现代网页外),你的 一切工作 都在其中完成。
这也意味着,你无需学习「单独」的快捷键或用户界面,一切都被整合在一个自文档化、易于访问且可不断迭代的地方,你可以将其塑造成任何你想要的样子。
3. 你的工具由你主宰
VS Code 之所以被广泛采用,是因为它能让人快速「上手使用」,这合情合理。但如果你想让 VS Code 真正成为你自己的工具,我祝你一切顺利。
Emacs 是完全开源且免费的软件(既免费又自由),你可以根据自身需求进行定制。这款工具不会妨碍你,反而能变成你需要的形态——它更像是用户思维的延伸,而非限制用户操作的框架。
4. 第一性原理
「但 Emacs 太古老了」
你爷爷也很老,你没对他另眼相待吧?要是你越界了,他照样能收拾你,是不是?
Emacs 诞生于一个崇尚计算根本原则的时代。它并非随意设计的系统,让你毫无理由地执行操作。相反,你会发现 Emacs 中的一切(除了下棋或玩俄罗斯方块)都有其存在的道理。例如,我曾以为自己能打造一个「更好的 org 模式」——但那样做无异于与计算机科学领域最杰出的头脑们较量。我对自己真有这般信心吗?说实话,我连记得晚上启动洗碗机的自信都没有。
Emacs 也并非「违背 UNIX 哲学」,正如许多人在我回归 Emacs 教会的视频中急于断言的那样。实际上,Emacs 将 Unix 工具链扩展到了仅靠 bash 脚本无法企及的境界。你拥有一种语言(elisp),可以调用 Unix 工具、扩展它们、编写脚本,理论上甚至能构建出你梦想中的任何东西。
你的编辑器现在完全可编程了——你可以让它做任何你需要的事,甚至更多。
5. 一生的计算机
正如我在视频中所说,观察一个使用 Emacs 长达 30 年的人(在 r/emacs 上有很多这样的用户)的配置,就如同窥见了一生的计算历程。那个实现晦涩小功能的 Lisp 函数?那是一个人的思想结晶。Emacs 是终身的编辑器,其他编辑器无法企及——因为它与你共同成长,在每个重大版本更新时突破边界,让人得以生活在纯文本的梦想之中。
6. 我当前的整个计算环境都封装在 Emacs 里
- 邮件 - Mu4e
- 开发 - treemacs(侧边栏)、vterm(集成终端)、针对我使用语言配置的 LSP/主模式、restclient.el
- 版本控制 - magit
- Docker - docker.el
- 数据库 - sql-mode 与 pgmacs
- 人工智能集成 - gptel 与 aider
- 写作 - 使用 org-mode,偶尔导出为 markdown/html/latex/pdf 格式
- 知识库 - org-roam
- 博客写作 - org-mode 导出至 hugo
- 日程安排与待办事项 - org-mode
- 日历 - calwf 和 org-gcal
- RSS - elfeed(RSS 阅读器)
- IRC - ERC(IRC 客户端)
- 音乐与媒体 - EMMS(多媒体系统)
- 记账 - ledger-mode
- 轻量网页浏览 - EWW
- 文件管理 - Dired 与 Dirvish
- 阅读 - calibredb, nov.el, pdf-tools, org-noter
7. 「APP」时代的终结
你会注意到我从未将 emacs 称为「APP」,原因在于那样会大大低估 emacs 的真正意义。
Emacs 几乎成了我的整个计算机世界。在这里,我能将所有与文本和智力相关的事务集中处理。若某件事无法在 Emacs 中完成,我就成了那个执着寻找解决方案的人——要么研究如何整合工作流,要么请 Claude 帮我设计定制 Lisp 函数,只为让 Emacs 再多覆盖 1%的日常操作。除非涉及重度图片/视频处理、现代网页浏览或 3D 渲染,其他所有工作流程都已被我纳入不断膨胀的 config.org 文件(最终编译为 config.el)。
The only fair use of "app" would be "Life App" - but more akin to Life OS.
若要用「APP」这个词,唯一合理的用法是「人生 APP」——但更准确地说,应该叫「人生 OS」。
8. 关于时间黑洞的争论
不愿磨斧头的人,就不该去砍树。
在我们这个追求即时满足的文化中,学习需要时间积累的事物成了某种禁忌。我常听到一种论点,说 Emacs 是个巨大的时间黑洞,投入的时间永远无法收回。但——你花了多少时间在屏幕上移动文本?又花了多少时间因电脑不按你的意愿行事而沮丧?还有多少时间耗费在寻找格式转换工具,或是「如何在 Word/Excel/Gmail 等软件中实现 X 功能」上?
有趣的是,这类批评往往来自编辑器大战中的 vim/neovim 阵营——但 vim 不过是个文本编辑器。只要你愿意,Emacs 甚至可以直接运行 vim。而 vim 用户同样需要学习与 CLI/TUI 工作流相关的全套工具链,这和掌握 Emacs 的投入几乎不相上下!
不仅如此——Emacs 不仅能以丰厚的回报补偿你投入的时间,它还赋予你完全的独立性。虽然我曾考虑过离开 Linux 桌面环境,投入苹果那光鲜但封闭的生态系统,但 Emacs 让我实现了这一点,因为它已成为我真正的计算环境。我不再那么在意操作系统(只要它是基于 Unix 的)。我可以选择硬件最优的地方——但我会暂缓选择苹果产品,等待 AMD 那些疯狂的集成芯片,因为那听起来像是激动人心的时刻!
9. 结论
虽然我不建议你沉迷于工具本身,但如果你和我处境相似,emacs 则与众不同。若你珍视个人自主与自由,渴望打造一个能随需求定制(并随着你的学习与新范式的发现而共同成长)的系统,以及渴望克服现代软件在生产力上的不足,emacs 就是那个选择。在我前行的旅程中,它将继续成为我的不二之选——无论是撰写下一本书、创立下一家公司,还是单纯将心中所想倾注于日记时,它都会伴我左右。
Emacs 诞生于一个注重设计、关注基本原则与持久性的时代。正因如此,五十年来无出其右者,我敢打赌未来五十年也难有匹敌。它不像年轻人说的那样"时髦"或"炒作"——它体现了人类的思维方式,展示了如何用软件增强这种思维,而 Emacs 的指导原则永不过时。
一如既往,愿上帝保佑,下次再见。