外观
Emacs 社区日报 2026-05-26
约 3439 字大约 11 分钟
2026-05-26
自动整理自 Telegram 讨论组,每天更新。内容为 AI 摘要,仅作信息索引与回顾。
Emacs 中文讨论组
🎯 核心热点与专题探讨
专题:Emacs Org-mode 中 Tree-sitter 与 org-modern 的兼容性冲突
群内围绕新版 Emacs (master 分支) 中,使用 tree-sitter 高亮时,与 org-modern 包在 org-src 代码块渲染中出现的兼容性问题展开了探讨。
- 痛点描述:用户在升级 Emacs 后,发现 Org-mode 内的代码块(如 Python/JSON)高亮渲染出现异常,表现为 tree-sitter 高亮与 org-modern 样式相互干扰,导致代码块无法正常显示。为此用户不得不暂时注释掉
org-modern并加上了kill-buffer old-buf等“黑科技”代码才能工作。 - 讨论焦点:
- 根源归因:用户初步认为是
org-modern的问题,但后来发现仅在部分机器(M4 Mac 正常,Intel Mac 异常)上出现,且偶发。群友指出这可能与选择的 major mode 有关,而非org-modern直接导致,建议检查org-src-get-lang-mode-if-bound和major-mode-remap-alist等变量。 - AI 辅助的局限性:用户承认代码由 codex(AI 辅助编程工具)生成,并认为问题可能与 tree-sitter 在“非实际文件缓冲区”(如
*org-src-fontification*)中的兼容性有关。群友则提醒:“codex 定位问题不一定准确的,很可能只是碰巧没问题,并不是根本原因。” 这反映了对 AI 生成代码结果的审慎态度。 - 潜在原因:最终倾向于认为核心问题在于新版 Emacs 中 tree-sitter 的
major-mode-remap-alist机制与org-src-font-lock-fontify-block内部的 major mode 选择冲突,导致在高亮渲染时使用了错误的 major mode(如 tree-sitter 版本)进而引发问题。
- 根源归因:用户初步认为是
- 解决方案:当前用户通过一段复杂的 advice 代码(手动指定 lang 到 major mode 的映射并剔除 major-mode-remap-alist 中的对应项)来规避问题,但这并非根本解决方案。问题暂未彻底解决,且偶发。
🔑 关键概念与技术解析
org-src-font-lock-fontify-block:Emacs Org-mode 中负责对#+begin_src代码块进行语法高亮的底层函数。此函数会模拟出一个临时缓冲区,切换到该代码块对应的 major mode,然后触发 font-lock。核心问题是这个“虚拟缓冲区”的 major mode 选择会被major-mode-remap-alist干扰,导致 tree-sitter 模式被错误地应用。major-mode-remap-alist:Emacs 29 引入的机制,允许用户将一个 major mode 自动替换为另一个(例如将python-mode替换为python-ts-mode)。在org-src的临时缓冲区中,这个替换机制可能导致高亮异常,因为临时缓冲区并没有实际文件,无法正确加载 tree-sitter 相关的 parser。tree-sitter:一种新一代的语法解析框架,为 Emacs 提供了精准、快速的语法高亮能力。但其设计基于有实际文件的缓冲区,与 Org-mode 代码块的纯文本模拟机制存在衔接问题。
💎 碎片知识与金句拾遗
- “codex 定位问题不一定准确的,很可能只是碰巧没问题,并不是根本原因。” —— 对 AI 辅助开发工具的清醒认知,强调手动排查和社区讨论的重要性。
- “modeline是原生c的性能 要是用插件改了 会变得很吃性能” —— 提醒在配置 Emacs 时,应警惕使用 Elisp 重实现原生 C 模块(如 mode-line)带来的性能开销,保持对 C 实现功能的敬畏。
- Emacs-mini-modeline:一个将 modeline 内容隐藏并“半合并”到 echo area 的包,创造性地将原本占用屏幕宝贵空间的 mode-line 内容移入 mini-buffer,为极简主义 Emacser 提供了一种新颖的 UI 思路。
- PragmataPro + Georgia:一组字体搭配推荐。PragmataPro 是一款知名极客等宽编程字体,Georgia 是经典的衬线字体,常用于 UI 文本和标题。这组合体现了 Emacs 用户对字体美学和阅读舒适度的追求(类似“代码用等宽 + 界面用衬线”的混搭美学)。
- Hyperpolyglot: Lisp:一个对照学习多种 Lisp 方言(Common Lisp, Clojure, Emacs Lisp, Scheme 等)的经典网站,是 Lisp 程序员常备的知识点速查手册。
🛠️ 值得深入研究的点 (Follow-up)
- Emacs master 中
org-src和 tree-sitter 的兼容性问题:这看起来是一个值得追踪的 BUG,尤其是org-src-font-lock-fontify-block在major-mode-remap-alist存在时的行为。可以关注org-mode和 Emacs 官方的 bug tracker 是否有相关讨论或补丁。 - 在 Org-mode 代码块中禁用 tree-sitter 高亮:用户可以尝试为
org-src的临时缓冲区设置一个major-mode-remap-alist白名单或 blacklist,或使用(dir-locals-set-class-variables)在org-src相关路径下禁止 tree-sitter 模式,作为更简洁的临时方案。
Emacs 轻聊讨论组
🎯 核心热点与专题探讨
专题一:Vibe Coding 下的项目管理与质量控制困境
这是本日讨论最深入的主题,跨越了多个时段和多个成员的发言。核心矛盾在于:当 AI 负责代码产出,人类从“开发者”转变为“项目经理”时,如何管理质量、防止偏离,并维护对项目的掌控。
痛点与讨论焦点:
- AGENT持续输出与预期偏离: 多位成员反映,让 AI Agent 持续运行(如
/goal长达26小时)会导致理解偏差,“跑20+小时偏到姥姥家”。经验是“给出边界、一定要写进文档里”,并且AI会“只捡最轻松的模块,不动难的模块”。 - 代码脱离感与Review负担: 随着依赖AI产出,人不再手写代码,造成“失去联系”和“脱离感”。Review成本增加,因为要检查AI悄悄加入的“莫名其妙的逻辑”。有成员提到“一直不看就会失去掌控”。
- 项目管理者的天问: 核心成员提出灵魂拷问:“在不熟悉项目实现细节的情况下如何保证质量(测试质量)?在不添加手动测试环节的情况下如何保证质量?” 以及“UI/UX设计,人类审美从feature出发,AI从layout出发”的矛盾。
- 重构与优化的缺失: 多数人用AI猛写代码,但很少进行重构和架构优化。只有当“非常明确的说明当前架构的问题、要解决什么问题都说清楚”时,AI才会执行重构操作,否则只会“微调”。
- 解决方案探索: 有人提出“Interview me relentlessly about every aspect of this plan until we reach a shared understanding” 这种通过主动质问对齐需求的方法,以及“/pua”的管理策略。
- 代码审查的明智操作: 有人建议至少通过函数名过一遍逻辑;对于不熟悉的语言(如elisp)则依赖AI审计重构,但非常废token。
结论: 群内普遍认为,维贝编码远非“甩手掌柜”,反而需要更强的项目管理能力。关键不在于让AI全自动,而在于通过精确的SPEC、主动的反向质问、持续的需求对齐和谨慎的代码审查来协同。
专题二:长内容总结与知识提炼的工作流改进
围绕用户@yibiechen的“视频总结”实践,深入探讨了如何让AI做更有价值的总结。
初始问题: 用“研究探索性”的提示词做了视频总结,结果“过度关注概念”,忽略了视频的核心——Matt Pocock的工作流细节和实操要点。总结沦为“正确的废话”。
迭代与优化:
- 技能错误诊断: 发现问题在于“用错了技能”。总结类任务需要收敛性的技能,忠于原文,提炼关键细节和实操,而非发散性地分析概念。
- 核心概念缺失: 第一次迭代的总结漏掉了Matt提出的
smart/dumb zone这一决策分层模型,这是其工作流认知的核心。 - 最终方案: 按时间线组织内容,保留更多细节和背景,形成一份更忠实于原文的总结。
- 方法论沉淀: 基于此过程,
@yibiechen整理发布了名为**“source-faithful-summary-skill”** 的通用Agent Skill,专门解决“原材料越长,AI越容易抽象成‘正确的废话’”的问题。该Skill已经过文本、视频、播客三类材料的测试并开源。
结论: 这也是一次群体智慧讨论的结晶。大家识别出AI总结时的两种倾向:发散(概念化)与收敛(忠实提炼)。好的总结需要明确任务类型(收敛),并有一套结构化的拆解与重组流程。
🔑 关键概念与技术解析
/goal: Codex (或类似AI IDE工具) 的命令,允许用户设定一个长期目标。AI会将其分解为阶段和子任务,并在当前阶段完成前持续运行,即使阶段配额已耗尽(体现了“人性化”设计)。smart/dumb zone: Matt Pocock在其分享中提出的一种认知模型,用于开发者判断何时依赖AI、何时亲自介入。这是AI合作中的决策分界线,但群内认为此概念在初版总结中被漏掉,是核心缺失。source-faithful-summary-skill: 由群友@yibiechen开发的Agent Skill(开源Github)。核心解决AI长内容总结的“空洞”问题,通过拆解原文(论点/例子/前提/边界/转折)再重组,而非简单压缩。是本次讨论的直接产出物。HermesvsOpenClaw: 两种用于管理AI Agent会话记忆(Session/Context)的开源工具或方案。讨论指出,Hermes的新版本已修复记忆错乱问题,且支持语音交互,用户体验提升。CodexvsClaude Code: 两个主流的AI编程Agent客户端。群友指出,DeepSeek API配合Claude Code(cc)是文字模型的“绝配”,但写代码仍然“差点意思”。- Neomacs v0.0.4: 一个新构建的、基于Emacs概念(但并非传统Emacs)的编辑器/环境。已打包Linux和MacOS版本用于测试,显示出极客对工具链的自主构建热情。
/compact与/clear: 视频中提到的隐喻。/clear类比《记忆碎片》式的完全重置;/compact则如《源代码》,能在一个片段中完成大量信息压缩及状态恢复,是更高阶的管理手段。
💎 碎片知识与金句拾遗
- 关于利用率: “真是旱的旱死,涝的涝死”(对比Claude额度没用完和拼命用的两位群友)。
- 关于Agent持续输出: “写好SPEC就可以当成甩手掌柜了” / “你不动难的模块” → 对应“你得狠狠地抽他” → 总结为“/pua” 管理法。
- 关于AI的认知局限: “AI训练了大量的知识,他知道某个场景下用什么是因为大量场景下命中了这些知识,他只是在复刻某一个人在某个场景下的行为”, “他不是真正拥有且能自我调配”。
- 关于总结的「正确废话」: “原材料越长,AI越容易把它抽象成几句看起来很对的‘大意’。这些大意通常不算错,但会把真正有价值的东西磨掉...最后变成一种‘正确的废话’。” —— 这是
@yibiechen创作新skill的缘起。 - 关于白嫖不成: “goal也是分阶段的,阶段做完会停。😄 想太美了。”
- 关于豆包的智力: “豆包的智商真的是。。。有一种流口水,阿巴阿巴的既视感。”
- 关于PM的天问: “在不能通读代码的情况下如何保证质量(测试质量)?” “天问啊,不添加一点手动测试的环节应该不行。”
- 关于硬件与AI结合: “优化我做的磁轴键盘的扫描逻辑。。。” —— 显示出AI在底层硬件开发中的应用。
- 关于冷门语言: “刚让写点lean的代码,乱七八糟的。” —— 说明AI对非主流领域语言支持仍差。
🛠️ 值得深入研究的点 (Follow-up)
- Agent Skill 工程化: 深入研究
@yibiechen开源的 “source-faithful-summary-skill” (Github Repo)。它不仅是一个总结工具,其核心的结构化拆解- 重组方法论,可作为构建任何高质量Agent Skill(如需求分析、架构评审)的通用模板。 Matt Pocock: 软件基本功在AI时代为什么更重要视频本身 (B站链接已被群友提供)。里面提到的smart/dumb zone决策模型、AI编程的实践工作流,值得每位技术管理者深入研究。- 编程 Agent 的全自动化边界: 如何通过改进SPEC编写(如利用多个LLM互相审查)、引入更严格的约束(如类型系统)或使用更复杂的代码分析与测试框架,来解决Agent“只做最轻松的模块”的问题。
Hermes+ 语音交互: 这种组合(语音-》Agent-》代码)模式,在Web UI微调等场景效率非常高。考察其记忆机制、技能调度或成本,对于追求“无手”编码的开发者很有价值。- Neomacs v0.0.4: 这是一个有想法的独立项目(非传统Emacs的重新包装)。可以关注其构建逻辑、API设计以及对AI编程的集成能力。
