Emacs 31 就在眼前:我每天在用的变化

Emacs 31 特性与反响

  • 大家对这些功能热情很高:自动安装 tree-sitter grammar、可编辑的 xref、frame 布局转置,以及将 speedbar 作为侧边窗口。
  • 许多人认为自动 tree-sitter 解决了一个主要痛点;有些人以前还写了很复杂的脚本来管理 grammar。
  • 一些老用户坦言,他们会升级,然后大体上还是像以前那样使用 Emacs,只是在内置功能变强后逐步精简配置。

配置、发行版与预设

  • 持续不断的抱怨是:要获得“现代 IDE”体验需要太多配置(tree-sitter、LSP、补全、主题)。
  • 有人建议官方提供预设或“profiles”,通过一个设置就把 Emacs 变成开箱即用的 IDE。
  • 也有人认为 Emacs 本来就应该 由用户手工调校;Doom、Spacemacs、Bedrock、Centaur 等现成配置已经填补了这个需求。
  • 一些用户经历了“配置破产”,于是要么改用 Doom/Bedrock,要么退回到极简自定义 init 文件。

AI 与代理集成

  • 有几位用户说,他们曾短暂切换到 VS Code 以获得 AI 功能,但在把 Claude 和其他 LLM 工具在 Emacs 里配置好后又回来了。
  • Emacs 被称赞为非常适合 LLM 辅助编辑,因为它是可文本化配置的;代理可以生成和维护 init 文件,不过也有人警告这会削弱用户对自己配置的理解。
  • 提到的工具包括 agent-shell、claude-code-ide、与 GPT 相关的包,用户体验褒贬不一(模型切换、缺少 slash 命令、并发限制等)。

终端模拟与远程工作

  • 新终端包 Ghostel 很受关注:据称比 vterm 快得多、能力更强,尤其适合现代 TUI 和 AI 编码工具;有人链接了基准数据和功能对比。
  • 用户强调 Ghostel 与 Claude 工具的集成(进度旋转指示、通知、超链接)。
  • Emacs 的 TRAMP 以及 emacs-daemon/emacsclient 工作流被提到是远程编辑、以及 tmux/screen 替代方案的长期答案,不过也有人仍然更喜欢 VS Code 的远程容器,因为延迟更低。

人体工学、模态编辑与键位绑定

  • 反复出现的问题包括:“Emacs 小指”以及由于修饰键组合导致的手腕疼痛;常见缓解方法有把 Caps Lock 重映射为 Ctrl、使用拇指修饰键,或使用 Ergodox 之类硬件。
  • 关于模态编辑的争论非常激烈:
    • Evil-mode 被广泛称赞为任何地方最好的 Vim 模拟;有人说 Emacs “比 Neovim 更像 Vim”。
    • 也有人拒绝模态默认行为,不喜欢 Doom/Spacemacs 的键位布局,希望使用非 Evil 的配置。
  • Emacs/readline 风格的移动键在 shell、浏览器和 CLI 中都很受重视;有人指出在现代 GTK/Firefox/Chrome 体系中,这些习惯有所丢失或失效。

人们为什么还在用 Emacs

  • 使用了几十年的老用户说,他们把 Emacs 当作“工具箱操作系统”来用:写代码、org-mode、Magit、邮件、RSS、日历、记笔记、间隔重复、PDF 标注、终端多路复用器替代,甚至阅读 Hacker News/Jira/Slack。
  • 许多人喜欢它密集、无干扰的代码视图,以及能同时保留多个窗口/frames 和上下文可见的能力。
  • 有些人声称,如今带上 LSP、tree-sitter 和 Magit 的 Emacs,在他们的工作场景里已经能与现代 IDE 匹敌,甚至更胜一筹。

批评与局限

  • 性能方面的抱怨包括:macOS 上启动慢、未经调优的 Windows/macOS 环境下速度慢、GC/native-comp 调优不足、TRAMP 延迟,以及总体上的“卡顿”。
  • 有用户出于安全/复杂性原因反对原生编译和词法作用域变更;另有人指出 pgtk 构建目前需要 native-comp,而这在他们看来是个 bug。
  • 还有少数人说,Emacs 的鼠标体验和 GUI 感觉与鼠标优先的编辑器/IDE 相比很差。
  • 也有人认为,对团队协作而言,标准化 IDE 仍然在开箱即用的工具、调试器和共享工作流方面更占优势。

文化与历史注记

  • 还穿插着一些怀旧插话:Emacs 的历史、早期 TECO/Gosmacs 时代,以及旧 terminal.el 里臭名昭著的辛辣评论,这些内容被保存在一个单独的“nasty”文件中。
  • 许多人强调,Emacs 是少有的、几十年来持续改进、同时仍受用户掌控且高度可脚本化的软件之一。