返回资讯中心
外部精选
软件工程
#开发者实时流

开发者撰文回顾使用Emacs多年经历

来源标题:I Hate Emacs

一位开发者讲述自己从Java转向Python后接触Emacs的过程:起初使用默认配置未能上手,观看PeepCode的Meet Emacs视频后入门。此后他多次重建配置、自写Emacs mode,至今仍以Emacs为主编辑器,并称高度可定制性让他难以改用VS Code等其他编辑器。

Hacker News 最新danielmartins2026/11/6 · 今天18 分钟阅读

以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。

当年我学了几年 Java、用惯了 Eclipse 和 NetBeans 这类臃肿的 IDE,为了拓展技能开始学 Python,于是也顺带琢磨起别的编辑器。我先试了 Vim,但始终没能适应它那套基于模式的编辑方式。后来我听说了 Emacs,听说它那传奇般的可扩展性,听说当代最多产的黑客都在用它。我确实很好奇。

用默认配置试了几天,依然没怎么“开窍”,这时我听说了 PeepCode 的“Meet Emacs” screencast(现在可以在 Pluralsight 上看),看完之后终于通了。

和每个 Emacs 用户一样,这些年来我把自己的配置搭了又搭、重写了无数遍。我甚至自己写过一个 Emacs mode,直到今天 Emacs 仍是我的主力编辑器——尽管我一次又一次尝试用 VS Code 这类所谓的“现代”方案取代它。

我想我是太习惯这种定制程度、太习惯把编辑器塑造成完全贴合自己需求的样子了,以至于脑子被彻底惯坏,别的编辑器根本用不下去。

Magit

AI 辅助编程工具开始火爆的时候,它们全都是作为 VS Code 插件写的。Claude Code 和基于终端的编程工具过了好一阵才出现,而公司又在大力推动工程师使用这些工具,我开始感到绝望,因为我早就知道 VS Code 不是 Emacs 的可行替代品。

换用其他编辑器时,我最想念的东西之一就是 Magit。它让我能极其高效地操作 Git,高效到我已经无法想象用别的方式做这件事。

于是我做了任何瘾君子都会做的事:用 Cursor 生成代码,然后切回 Emacs + Magit 做审查和版本控制。

幸运的是,AI 工具变得如此之好,以至于需要手动折腾 Git 的场景我已经很少遇到了。

这是否意味着我现在可以抛弃 Emacs 了?

Org Mode

用了 Emacs 之后,接触 Org mode 自然就是第二步,用它来记笔记、跟踪任务。

Org mode 的陷阱在于:你可以先从它比较基础的功能用起,比如状态标记和日期/截止时间,然后按需探索更多特性。问题在于:在你最意想不到的时候,你会发现自己已经陷得太深,从此任何其他工具都再也比不上它。

为了说明我的意思:除了工作上的用途——我每天写日志,并用 Org-roam 维护互相链接的笔记(这个我稍后会讲)——我还用 Org 记个人笔记,比如重要日期、项目(涉及多个任务和协调的事情)、学习主题和菜谱。

下面是我跟踪纪念日和提醒的方式:

1 2 3 4 5 6 7 8 9 10 11 12 * Bills ** TODO [#A] Pay rent DEADLINE: <2026-11-26 Thu +1m> * Birthdays :PROPERTIES: :CATEGORY: Birthday :END: %%(diary-anniversary <month> <day> <year>) Some dear friend 🎂 (%d years) ... 这些在 org-agenda 里显示成这个样子(在我配好语法高亮的 Emacs 上更好看):

Week-agenda (W48): Monday 23 November 2026 W48 Tuesday 24 November 2026 Wednesday 25 November 2026 Birthday Some dear friend 🎂 (37 years) :personal:: Thursday 26 November 2026 Project 7 d. ago: WIP [#B] Renew passport Task Deadline: TODO [#A] Pay rent :personal:task:: Friday 27 November 2026 Saturday 28 November 2026 Sunday 29 November 2026 在这个视图里,我能看到当天分配(或到期)的所有任务,甚至只按几个键就能直接切换任务状态。对于“Pay rent”这样的重复项,任务被设为 DONE 后会自动重置为 TODO,截止时间顺延一个月。1

另一个我越来越喜欢的功能是 Org 表格。我有一个特别的用法是计算菜谱的配料用量:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 #+title: Cocada #+filetags: :personal:recipe: * Ingredients Fill the shredded coconut amount to calculate the proportional quantity for the other ingredients. | Ingredient | Amount | |----------------------+--------| | Shredded coconut (g) | 300 | | Water (ml) | 200.1 | | ... | ... | #+tblfm: @3$2 = 0.667 * @2$2:: @4$2 = 0.5 * @2$2 :: ... 于是,如果我去超市买了 370g 椰丝,把它填进去,在 #+tblfm 公式行上按两次 Ctrl+c 重新计算表格,就能得到其他配料正确的用量。当我们在单元格之间修改或移动时,Org 还会自动格式化表格。

Org-roam

随着笔记增多,你会开始操心结构问题:是一个大文件还是多个小文件?所有文件放同一目录,还是按主题用嵌套目录?

最终我发现了 Org-roam,从此不再想这些事。它把所有笔记放在同一个目录里,但你根本不需要看文件结构;只需开始记录笔记,用对你来说合理的方式把它们链接起来,结构会自然而然地从事物之间的关联中浮现出来。

那么,问题在哪?

看起来到目前为止我都在夸这些工具。那么坑在哪?坑和 Emacs 作为文本编辑器时是一样的:一旦某个东西“开窍”了,就再也回不去了。

当我在编辑器里时,这套配置近乎完美,但 Emacs 并不是为在常规台式机/笔记本之外使用而设计的。就算它可以,我也无法想象自己在手机上2打开 Emacs 来查看笔记。

尤其是 Org mode,一切归根结底取决于 Emacs 之外的 Org 支持,而到今天为止这方面还相当参差不齐;我试过 Android 上的 Orgzly,但它对 Org 的支持是部分的,表格和 Org-roam 链接都不能用;Beorg 是一个不错的 iOS 应用,功能上和 Orgzly 很相似,问题也类似,但至少链接能用;Orgro 支持链接和对表格的部分支持,但你不能把它指向一个目录,只能指向单个文件;Organice 不是原生应用,所以没有日历集成。

(原文较长,此处译出前 6000 字,完整内容请点「打开原文」。)

正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。

打开原文
去社区讨论 →