文章摘要
Emacs 31即将发布,作者已提前使用其新功能数月。文章介绍了无需外部包即可使用的内置改进,如开箱即用的Tree-sitter支持,并强调这些功能仍在开发中,名称和默认设置可能变化。
文章总结
好的,这是根据您的要求,对原文进行中文重述和精简后的版本。
Emacs 31 即将到来:我正在日常使用的新变化
Emacs 31 尚未正式发布,但作者已从开发分支编译并日常使用数月。本文梳理了作者在个人配置中已开始使用的、无需额外安装包的内置新功能。
核心亮点:开箱即用的 Tree-sitter
这是作者最满意的变化。以往启用 Tree-sitter 模式需要手动配置语法来源并编译,过程繁琐。在 Emacs 31 中,只需将 treesit-enabled-modes 设为 t,即可自动为支持的语言启用 Tree-sitter 变体模式。当缺少语法文件时,treesit-auto-install-grammar 会主动提供下载和构建选项,而非直接报错。许多语言的语法源已内置于模式代码中,用户无需再手动配置,配置文件因此得以简化。
实验性功能:内置 Markdown 模式 (markdown-ts-mode)
Emacs 31 内置了实验性的 markdown-ts-mode。该模式由作者发起,并与另一位贡献者 Stéphane Marks 共同开发。其特点包括:
- 类 Org 体验:快捷键和编辑方式接近 Org-mode,如标题导航、折叠等。
- 实时彩色代码块:围栏代码块会使用对应语言的真实主模式进行语法高亮,包括 Emacs Lisp 等内置模式。
- 内联图片显示:Markdown 文档中的图片链接可直接在缓冲区中渲染显示。
目前该模式仍需手动加载(M-x load-library RET markdown-ts-mode),不会自动接管 .md 文件。作者欢迎用户测试并提供反馈。
Eglot 文档渲染改进
Emacs 31 的 Eglot 客户端可使用内置的 markdown-ts-view-mode 来渲染 LSP 的悬停文档,提供格式化显示,无需额外配置。此功能同样处于实验阶段。
其他实用改进
eldoc-at-point:光标悬停时自动显示帮助信息。- 更智能的补全:
completion-eager-update和completion-eager-display实现输入时即时刷新补全列表。minibuffer-visible-completions允许用方向键浏览候选。icomplete 也获得了垂直显示和前缀指示符的改进。 - 窗口布局操作:新增了转置、旋转、翻转等命令,方便重新排列窗口布局,且缓冲区内容保持不变。
- Speedbar 侧边栏化:Speedbar 现在可以停靠在侧边窗口,而非独立的框架,更适合平铺窗口或单显示器环境。
- 版本控制 (VC) 优化:
vc-dir刷新时可自动隐藏已是最新的文件。新增vc-allow-rewriting-published-history以支持如 Jujutsu 等允许重写已推送历史的工具。 - 可编辑的 Xref 缓冲区:
*xref*缓冲区现在支持直接编辑(e键进入编辑模式,C-c C-c确认),无需再切换到 grep 缓冲区进行批量修改。此功能由作者提议,经维护者 Dmitry Gutov 优化后实现。 - ERC (IRC 客户端) 改进:改进了日志插入行为,
scrolltobottom模块不再依赖erc-fill-wrap。 - 大量生活质量小改进:例如
kill-region-dwim可在无选中区域时向后删除一个单词;view-lossage-auto-refresh可实时显示按键记录;IELM 历史记录可持久化;终端下支持工具提示等。
两个特别提及
- Term 终端修复:修复了
term和ansi-term在运行全屏程序(如htop、nethack)时吞行、显示错乱的老大难问题。现在这些程序可以正确渲染。 - Modus 5 主题:Emacs 现在内置了多个 Modus 主题,包括针对色盲(如绿色盲、蓝色盲)优化的版本,以及不同背景色调的变体。
结语
作者认为,日常使用未发布的 Emacs 版本,能让他提前了解并适应核心功能,从而减少个人配置中的“胶水代码”。看着配置文件随着核心功能的增强而变短,是使用 Emacs 的一大乐趣。
评论总结
根据评论内容,总结如下:
主要观点与论据:
Emacs 31 新功能受期待(评分:无)
- 自动安装 treesitter 语法、可编辑 xref、窗口布局转置、speedbar 作为侧边窗口等新功能让用户惊喜。
- 关键引用:"Wow, auto install treesitter grammars, editable xref, transposing window layouts... Some dreams do come true!"(scoops_)
- "Nice to know sr-speedbar can finally be retired."(tmtvl)
Emacs 的持续使用与复兴(评分:无)
- 用户从 VSCode 回归 Emacs,认为其在大屏代码展示上无可替代;treesitter 等项目复兴了 Emacs 生态。
- 关键引用:"There just isn't anything like the old editors... for getting huge swathes of code on your screen at once."(jerf)
- "I made my two dev Macs 'VSCode free' and use Emacs for everything."(marklwatson)
配置痛点与改进建议(评分:无)
- 用户希望 Emacs 提供预设配置,减少初始配置量,而非依赖 Doom Emacs 等第三方方案。
- 关键引用:"I wish Emacs came with several presets so with a single line, you could transform the editor to different base points."(xedrac)
- "Someone should write an Emacs guide for people who haven't meaningfully touched their .emacs since the early 2000s."(Snoddas)
AI 对 Emacs 的影响(评分:无)
- AI(如 Claude、ChatGPT)增强了 Emacs 的实用性,降低了学习曲线,但也改变了编辑习惯。
- 关键引用:"Systems like Emacs that are hyper-configurable via a text file seem tailor made for modern LLM's."(bryanlarsen)
- "ChatGPT wrote 20 lines of elisp code... Need any behavior changes? Modify, eval expression, new behavior!"(whacked_new)
终端模拟器与历史趣闻(评分:无)
- 用户提及 Emacs 终端模拟器的改进,并回顾了早期代码中的粗俗注释历史。
- 关键引用:"It's nice to hear the emacs terminal emulator has gotten some love, after all the controversy about the nasty language..."(DonHopkins)
- "Open source with profanity in comments is statistically better than code without it."(DonHopkins)
平衡性说明: 评论整体对 Emacs 31 持积极态度,但部分用户指出配置复杂、AI 改变编辑习惯等挑战。历史趣闻作为补充,不影响主要观点。