基岩(Bedrock)是为 Emacs 打造的极简手工入门套件,现已发布 2.0 版本。该版本要求 Emacs 31,其于 2026 年 8 月推出。若不能升级可移除部分 Emacs 31 特定配置。基岩本质是一组更好的默认设置,基础配置不含第三方包,但提供流行包示例配置。它理念较其他入门套件简单,仅含 early-init.el 与 init.el 文件,复制到 ~/.emacs.d/ 后直接修改,文件带适量注释,第三方包配置置于 extras/ 文件夹。
正文
Bedrock 是一个由人工打造的极简 Emacs 入门套件,今天很高兴宣布 2.0 版本发布!此版本需要 Emacs 31(2026 年 8 月发布)。如果无法升级到这么高的版本,应该可以去掉部分 Emacs 31 专属配置而不费太多力气。
Bedrock 本质上是 Emacs 的一组更合理的默认设置,基础配置不使用任何第三方包。Emacs 的部分魅力在于社区开发维护的丰富包,因此 Bedrock 为一些最流行、且我个人认为必不可少的包提供了示例配置。
Bedrock 的理念比其他“入门套件”或配置框架简单得多:它只是一个 early-init.el 和一个 init.el,你一次性复制到 ~/.emacs.d/ 后,随着需求增长和经验增加直接修改这两个文件。文件里的注释足以在你探究功能原理时指点方向,又不会在找代码时把你淹没在冗长文字中。第三方包的配置放在单独的 extras/ 文件夹,你可以按需把单个包的配置直接复制到 init.el,或每次导入整组包的文件。
Bedrock 2.0 的改动
这次是主要版本,因为 Bedrock 不再兼容 2024 年发布的 Emacs 29。主要改动如下:
- Bedrock 现在在所有
.el文件中使用lexical-binding: t声明。 - 用
use-package声明的包,若系统未安装则默认自动安装。 - 若加载了
embark包,使用embark-auto-prefix-help-mode替代which-key。 - 移除
wgrep,改用内置的grep-change-to-grep-edit-mode。 - 大幅改进
tree-sitter配置。 - 优化
isearch配置。 - 让内置的
*Completions*缓冲区自动更新。 - 默认开启
repeat-mode。
此版本的修复:
- 修复主题颜色未生效的问题。
- 更好地抑制启动消息。
- 其他零星小改进。
以上列表并不完整,但大致如此。更多细节见更新日志。
这更像是增量改进,而非彻底重构。如果你用着旧版很满意,可能没什么理由“升级”。Emacs 本身是很稳定的编辑器(尽管其活跃开发既实在又令人兴奋),为“前沿”打造的入门套件相对稳定性也不足为奇。
从早期版本升级
Bedrock 不支持自动升级,因为那需要代码脱离 init.el 存放,而 Bedrock 的初衷就是让你尽快完全掌握自己的配置。你应该将克隆或复制时所基于的提交与新的 main 分支比较,挑选需要应用的部分。
评论
讨论气氛友好,几乎没有真正的对立。多数评论者认可这个入门配置包的设计取向和文档细节,少数人围绕技术细节、命名联想或 Emacs 的“身份”展开补充和玩笑。
赞赏“扶上马但放手”的入门方式
- 项目 README 的自述被评论者当成亮点摘出:它继承了“父辈给你一份 .emacs,你用很多年后才学会自己写函数”的传统,但把它变成了更适合分享的包。核心是让新手跨过最初的门槛,却不会因为被过度保护而不敢改动。(较多人) > 这份配置帮新手跨过最初的一道坎,但不会把他们娇惯到不敢按自己的喜好去改(@inatreecrown2)
从配置包中挖到“内置宝石”很值
- 有评论者看到“移除 wgrep,改用内置的 grep-change-to-grep-edit-mode”后表示今天才学到这个功能,甚至可能删掉自己的 wgrep。这类精心打磨的 starter kit 不只是给新手的,老用户也能从中翻出好东西。(少数) > 我今天才知道有这功能,看来我的 wgrep 也能卸了(@AloysB)
词法绑定 cookie 要根据文件年龄区别处理
- 技术层面的提醒:最近写的、并且写时已经默认词法作用域的 .el 文件用
lexical-binding: t没问题;但词法绑定出现之前写的旧文件,如果未经检查,最好把 cookie 设为 nil,或者彻底走一遍重写。(少数) > 旧文件写于词法绑定还不存在的年代,最好把 cookie 设为 nil,要么就仔细检查后按词法绑定重写(@dreamcompiler)
“Bedrock”这个名字引发版本与定位联想
- 有人第一反应以为这是 Rust 重写版 Emacs,还类比了 Java 版 Minecraft 与 Bedrock 版 Minecraft 的关系;也有人提问“Emacs 不就是像 vim 或 nano 那样的文本编辑器吗?”这种疑问与玩笑侧面说明项目名容易让人先入为主。(少数) > 我一开始还担心这是不是 Rust 分支版的 Emacs,就像 Java 和 Bedrock 版 Minecraft 那样(@gcr)
有价值的补充
- 有评论者感谢文章开头先说明了项目是什么,认为很多博客和 newsletter 都默认读者记得自己,这一点值得提倡。
- 有熟悉作者背景的评论者注意到作者与 PLT 有关,于是顺势推荐了一个用 Chez Scheme 实现的 Emacs 风格编辑器 e,链接放在了 GitHub 上。
- 一位老用户提到自己正处于两年一轮的“BBEdit 与 Emacs 之间来回切换”的周期节点,也算是对 Emacs 编辑体验的一种老调重弹。