Karthinks 这篇文章有意思的地方,不是介绍新插件,也不是追 Emacs 新版本。
它反过来挖 Emacs 自带功能。第三篇了,还是能挖出一批很多人可能没怎么用过的东西:悬停查词、通配符打开文件、从 buffer 扫文件路径和 URL、轻量文本比较、Dired 目录比较、变更高亮。
作者给自己划了很窄的线:只讲 stock Emacs,不讲第三方包;不讲 tetris、doctor 这类玩具;每个功能要能在五分钟内学会;也避开那些已经被反复推荐的常见能力。所谓“冷门”,他也说得谨慎:这是主观判断,不是统计结论。
但问题正卡在这里。很多能力不是没有,而是藏在 docstring、命令名和老式术语里。你知道它,就是暗门;你不知道,它就等于不存在。
这次挖出来的,都是日常小痛点
这篇文章列的不是发布会功能,也不是能拿来炫配置的花活。
它们更像文本工作里的小刀片。平时不起眼,真遇到场景就省时间。
| 功能 | 解决什么问题 | 怎么入口更直接 |
|---|---|---|
dictionary-tooltip-mode | 鼠标悬停查词 | M-x dictionary-tooltip-mode |
find-file / Dired 通配符 | 一次打开或列出一批文件 | C-x C-f 或 Dired 中使用 wildcard |
ffap-menu | 从当前 buffer 扫出文件路径和 URL | M-x ffap-menu |
compare-windows | 快速找两个窗口文本差异 | M-x compare-windows |
dired-compare-directories | 比较两个目录 | 在 Dired 场景中调用 |
highlight-changes-mode | 高亮 buffer 里的改动 | M-x highlight-changes-mode |
compare-windows 很典型。
它不像 Ediff 那样完整,也不装成版本控制工具。它只比较两个窗口里从光标开始的文本,停在第一个不同处。粗糙,但快。
你可以拿它比较两个文件,也可以比较同一个 buffer 里的两段文本,甚至比较两个 Dired 窗口里显示出来的目录列表。
这类功能很难被包装成“大卖点”。但对每天处理代码、配置、日志、文档的人,它会不断救场。
find-file 和 Dired 支持通配符也是同一个味道。很多人知道 Lisp 函数可以这么调用,却未必知道交互式使用时也能这么干。作者点得很准:这个能力写在完整 docstring 里,可谁会把每个 docstring 都读完?
对 Emacs 老用户,最现实的动作不是“换编辑器”,而是把这些命令补进自己的工具记忆里。比如遇到批量文件、目录对照、轻量 diff 时,先想一秒:这事是不是 stock Emacs 已经能做。
对文本工作重度用户,这类整理能直接省掉一次搜索、装包、调配置的成本。少装一个包,不是洁癖;是少一层维护负担。
Emacs 的护城河,是几十年文本工作流沉积
很多人谈 Emacs,先谈插件生态、配置自由、可编程性。
都对。但这篇文章提醒了一个更底层的东西:Emacs 真正厚的地方,是几十年文本工作流沉下来的细节。
它不只有大模块。它有大量“小而硬”的命令:查词、跳链接、批量开文件、目录比较、轻量 diff、变更导航。单个看不惊艳,组合起来就是一套老工具箱。
扳手有点生锈。标签也褪色。可尺寸齐全。
这里要和 VS Code 式现代编辑器拉开看。
| 路线 | 优点 | 代价 |
|---|---|---|
| VS Code 式产品 | 命令面板、扩展市场、图形设置、推荐入口更清楚 | 用户更容易沿默认路径走,组合自由受产品设计牵引 |
| Emacs | 能力可组合,很多功能不依赖第三方包 | 发现成本高,用户要读帮助、记命令、懂术语 |
这不是胜负表。
现代编辑器更会把功能做成入口。用户不用考古,照着菜单、提示、扩展市场走就行。
Emacs 常常反过来:能力在那里,组合权也给你,但发现成本由用户自己承担。它把自由给得很彻底,也把迷路的责任一起交出去。
所以 Emacs 的强和难,真是同一枚硬币。
老用户会觉得这很值。因为工具能磨成自己的手脚。
新用户只会先撞上一堵术语墙。ffap 是什么,Dired 的比较怎么找,docstring 写了什么,哪些命令能交互用,哪些只适合 Lisp 调用——这些东西不会自动跳出来解释自己。
“天下熙熙,皆为利来。”放到工具世界也一样。多数用户要的是立刻省力,不是先学一门古老方言,再获得自由。
真正该观察的,不是又挖出几个命令
Karthinks 这类文章的价值,不在于替 Emacs 做情怀宣传。
它更像一次小规模清淤:把能马上用的东西从文档地层里挑出来,擦干净,放到桌上。
这对有经验的 Emacs 用户尤其有用。因为老用户也会偏科。
有人熟 Dired,有人熟 Org,有人只把 Emacs 当 Lisp 机器。结果是,很多内置能力没有真正流通,只是在少数人的配置里安静活着。
接下来最该观察的变量,也不是 Emacs 会不会突然变“现代”。这个问题太大,也缺少明确证据。
更现实的变量有两个:
- 这类 stock 功能整理能不能被更多用户转化成日常习惯,而不是收藏夹里的文章。
- Emacs 社区能不能把“能力存在”进一步变成“入口可见”,哪怕只是更好的命令命名、帮助索引、默认提示和示例。
如果做不到,Emacs 仍然会强,但强在少数人手里。
这也是很多自由软件的共同命运。功能长期叠加,设计债慢慢沉积,文档默认用户愿意读,界面默认用户愿意试。它们不急着把每个入口磨圆,于是保住了很多可组合的毛边。
这有魅力,也有代价。
Emacs 像老城下水道。丑、旧、难找,但真遇到复杂场景时,才知道它为什么还没塌。
这篇文章真正提示的,不是“你该去用这几个命令”。更准确地说,它提醒我们:工具的上限,有时不在新功能里,而在那些已经存在、却没人告诉你的旧能力里。
Emacs 的问题不是老。
老只是表面。更麻烦的是,太多能力被埋在可发现性的黑洞里。能挖出来的人,会觉得这是自由;挖不出来的人,只会觉得这是折磨。
