返回

文章详情

Emacs 31 的到来:我每天使用的变化

Hacker News2026年6月18日 12:10

卡尔蒂克·奇克马加鲁最近发布了他优秀的 "Emacs 还在不断更新中 "系列文章之一,探讨了许多目前随 Emacs 一起提供的鲜为人知的特性。我想写出它的镜像。他的文章涵盖了已经包含在盒子里的功能。我的文章则涵盖了即将到来的 Emacs 31。Emacs 31 还没有发布,但我一直在从 emacs-31 分支和主分支构建它,已经使用了几个月。每当有新的、有用的功能出现时,我就把它纳入我的 Emacs Solo 配置中,这是一个不依赖外部包的设置,并用一个小的 ; EMACS-31 注释标记,以便我在正式发布后能记得去重新查看它。这篇文章记录了这些变化。下面的每一项更改都是我现在在配置中使用的,附有它的功能说明和我保留它的原因。这些都不需要任何包。所有的功能要么已在主分支上,要么很快会推出。有一点声明:Emacs 31 仍在开发中(实际上处于预发布阶段),因此在最终发布前名称和默认设置可能会有所变化。以下内容是我在 2026 年中期运行的。如果你没有从 emacs-31 分支或主分支构建,可以将此视为即将到来的预览。可以正常工作的树状解析器 如果要我挑选我最满意的变化,那就是这个。多年来,获取 *-ts-mode 意味着必须手动填充 treesit-language-source-alist,调用 treesit-install-language-grammar,并祈求人你的工具链已经准备好编译语法。在 Emacs 31 中,这将简化很多:将 treesit-enabled-modes 设置为 t 会切换到有树状解析器变种的主要模式,treesit-auto-install-grammar 使 Emacs 在缺失的情况下会提供获取和构建语法的选项,而不是报错。这是 treesit-auto 包的体验,只是现在核心完成了这项工作。这样的影响在我的配置中无处不在。我过去需要保留类似于以下内容的行来告诉 Emacs 每个语法的位置:在 Emacs 31 中,像 TypeScript、TSX、Rust、TOML、YAML 和 Dockerfile 的语法源文件都位于模式内部,因此我留下了许多 ;; EMACS-31 这是现在模式代码中定义的注释,标记每个块,我可以在 31 发布后删除这些块。任何一天,我都愿意接受更少的配置来完成相同的工作。Emacs 的树状解析器还有很多改进即将来临。开发者们正在不懈努力,袁复等许多人正在不断改进树状解析器在多个方面的体验。从更好的语言支持到可用性和性能的提升,Emacs 中的树状解析器仍在以惊人的速度发展。内置的 markdown-ts-mode(实验性) Emacs 31 在盒子里提供了 markdown-ts-mode,而这个功能与我息息相关。我是这个功能的发起者。它起源于我在 2025 年初向 emacs-devel 发送的提议,其中这个想法和第一个版本的代码都是我的。如果让我让你认为这是一个单独的努力,那我就对这款模式不公正。斯特凡·马克斯在稍后加入,投入了很多精力,成为了这个模式的共同作者。他为现在使用起来的流畅性做出了很大的贡献。他不仅发送了一两个补丁就离开了,而是留下,推动这个模式超越了我最初的构思,关注于将“它可以工作”变成“使用起来很愉快”的细节。我即将夸耀的很多精致之处都归功于他。这个模式现在是我们的,它也因此变得更好。看到一个想法从邮件列表的消息回到核心代码,并在途中找到了一个出色的合作者,是在 Emacs 社区中闲荡时最有回报的事情之一。它不仅给你带来色彩,这也是我想展示的部分:✔️ 组织用户会感到宾至如归。键绑定和编辑感保持接近 Org:导航标题、折叠部分、在结构元素之间移动。如果你的手指熟悉 Org,你就无需重新学习 Markdown。✔️ 实时彩色代码块,即使是对于非树状解析语言。这是我最喜欢的技巧。一个围绕地代码块使用该语言的真实主要模式进行字体样式处理,而不是简单地显示为平面等宽字体。它也适用于 Emacs 自己的内部模式,因此 ```elisp 块可以用真正的 Emacs Lisp 字体高亮显示,其他内置模式也是如此。你可以在代码样本中获得适当的语法高亮,而无需额外的设置。✔️ 行内图像查看。图像链接在缓冲区中呈现,因此一个带有屏幕截图或图表的 Markdown 文档读起来像一篇文档,而不是一墙的 ![](path) 噪音。还有许多其他可发现并正在开发的功能。这些共同使其感觉像是一个在 Emacs 内写入和阅读 Markdown 的舒适地方,而不是一个贴在 .md 文件上的语法高亮器。我想提前说明一个警告:markdown-ts-mode 仍在实验阶段,你必须选择加入。正如 markdown-ts-mode.el 的标题所示,它还没有连接到 auto-mode-alist,因此它不会自动接管 .md 文件。目前你可以通过 M-x load-library RET markdown-ts-mode 来加载该库。

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

请我喝杯咖啡