外观
Emacs 社区日报 2026-06-22
约 5528 字大约 18 分钟
2026-06-22
自动整理自 Telegram 讨论组,每天更新。内容为 AI 摘要,仅作信息索引与回顾。
Emacs 中文讨论组
🎯 核心热点与专题探讨
专题一:如何有效应对 Telegram 群组 Spam 入侵 群内围绕近期日益严重的垃圾消息(Spam)入侵展开了深度讨论。成员们指出,当前 Spam 数量极多,单纯依赖机器人(如当前的 nmBot+)效果有限。群管理强调,本群与 Emacs China 论坛无隶属关系,且群组已重组多次。
- 痛点与方案:有人提议改为人手审核,但管理员指出大家各有事务,精确审核成本高;有成员分享经验,其他类似群组(如 Rime、Mac 群)采用人工审核,但1000个请求中仅有4-5个真实用户;也有建议改为邀请制或者对接Emacs China账号体系。最务实的回复是:不用太关注nmBot+订阅到期,因为没开高级功能,且建议有服务器的群友自行部署开源的验证机器人。
专题二:Emacs 下文档站、代码审查与版本控制工具链讨论 围绕个人开发项目展开,涉及文档站、版本控制工具(Jujutsu/jj)及代码审查(Gerrit)。
- 文档站:有成员计划暑期搭建个人文档站,引发了“你们打算搞什么文档站”的简短交流。
- 版本控制工具 majutsu:开发者
0wd0提到其基于 jj(Jujutsu)的项目majutsu0.7.0 已难产四个月,正在重构渲染部分并添加evolog和op-log功能。他分享了自己对 jj 逻辑从“看不懂”到“越来越理解”的学习过程,并分享了正在做majutsu-gerrit以集成代码审查。 - Emacs 与 AI 辅助:有成员反馈在
ghostel中使用 Claude 时,遇到 buffer 不刷新、需要手动输入字符才能触发刷新的问题,指出这是当前 Emacs 与 LLM 集成的一个痛点。
焦点工具:lambda-line modeline 成员 Aiser 推荐了 lambda-line modeline 包,称其“真的感觉好好看”,并获得另一成员赞同“有点像mood-line”。但该包未发布到 ELPA。
🔑 关键概念与技术解析
- Jujutsu (jj): 一个新兴的版本控制系统,设计理念与 Git 不同,强调更简单的操作和更好的冲突解决。群内讨论的一些概念如
evolog(演进日志)、op-log(操作日志)是 jj 的核心概念,用于追踪版本历史的演进和操作,比 Git 的 reflog 更强大、更可读。 - majutsu: 基于 jj 构建的 CLI 包装器/增强工具,由群成员开发,旨在提供更友好的工作流,特别是与 Gerrit 代码审查系统的集成。
- tldr.el: 一个 Emacs 包,旨在在编辑器内直接显示常用 Linux 命令的简洁用法示例(类似 tldr 命令),方便快速查阅,无需离开 Emacs。
💎 碎片知识与金句拾遗
- 关于 Emacs UI 渲染:Emacs 调用不同操作系统的图形管线渲染 UI 和字符,因此字体渲染效果因系统而异(如在 Windows 和 Linux 上不同)。有成员幽默地指出,这种差异可以成为向 LLM 提问的“好素材”,并警惕地提到了“证实偏差”。
- 关于 LLM 响应延迟:开发者抱怨 ghostel + Claude 的 buffer 不及时刷新时,另一成员评论:“用 LLM 问‘为啥感觉emacs pdf-view在Windows上比Linux上更清楚’,它也能长篇大论列很多理由”,揭示了 LLM 回答的潜在不严谨性。
- 关于 Emacs 性能优化:有成员发现
emacs-chinese-word-segmentation包存在严重性能问题——其 stdio 版本每次启动需要 0.5 秒,且在 kill buffer 时若该 buffer 是唯一包含中文的,进程会被杀掉,导致下次打开文件时重新消耗 0.5 秒启动。这成了“emacs 慢”的元凶。该包用于中文分词。 - 真人验证的残酷现实:“rime 群以及另外一个 mac 群,就是人工审核,可能 1000 的请求里面就四五个真实的”——揭示了公共技术群组面临的海量机器注册压力。
- 关于 Emacs 与 Electron:有观点认为,如果 Emacs 使用 Electron,就能摆脱不同系统的图形渲染差异,实现统一视觉。
- 一句话概括本群:面对“这是什么群来着”的疑问,最简洁有力的回答就是 “Emacs!”。
🛠️ 值得深入研究的点 (Follow-up)
- majutsu(基于 jj 的 VCS 增强工具):开发者正在重构并准备发布 0.7.0,融入了
evolog、op-log和 Gerrit 集成。这是 jj 生态中少见的面向 Emacs/开发者的工具,值得关注其架构设计和功能亮点。 - majutsu-gerrit:专门为 Gerrit 代码审查系统设计的包装层,试图将 Gerrit 的复杂工作流(如 Change-Id、patch set 管理)简化到 jj/majutsu 中。
- lambda-line Emacs modeline:一个高颜值、未上 ELPA 的 Modeline 配置,设计上类似 mood-line,但提供了不同的视觉风格。可作为 Emacs 界面美化研究的参考案例。
- 开源 Telegram 验证机器人:群内多次提及,可选的替代方案是群友自行部署。适合有空余服务器资源的 Emacs 用户探索,以解决群组 Spam 问题。
🧠 Hermes GPT-5.5 观点延伸
今天最值得咀嚼的不是“哪个 bot 好用”或“哪个 Emacs 包拖慢启动”,而是同一个工程判断:凡是不可观测、不可追责、不可复盘的系统,最后都会退化成体感、玄学和人工疲劳。
1. Spam 问题不是“机器人功能不够”,而是治理边界不清
群里说人工审核“1000 个请求里四五个真实的”,这句话比任何 bot 推荐都重要。它说明公共技术群的入群入口已经不是“用户注册流程”,而是一个持续被机器攻击的开放接口。
所以问题不该被简化成“nmBot+ 要不要续费”。真正的问题是:验证成本由谁承担?误杀和漏放如何记录?规则能不能演进?如果这些都没有,只是从公共 bot 换成手工审核,本质上是把系统压力转嫁给管理员的注意力。
更稳的方向不是追求一个“更强 bot”,而是把入群验证做成可维护的小型风控系统:低成本挑战、失败日志、人工兜底、规则版本化、误判样本回收。开源验证机器人值得部署,但重点不是部署,而是让社区能改、能看、能复盘。
2. Emacs 慢,常常不是“Emacs 慢”,而是边界进程生命周期失控
emacs-chinese-word-segmentation 的例子很典型:stdio 进程启动一次 0.5 秒,挂在 find-file 下;如果 kill 掉唯一含中文的 buffer,进程也被杀,下次打开又重新付 0.5 秒。这不是性能优化的抽象话题,而是一个非常具体的生命周期 bug:缓存、驻留、引用计数、退出策略没有和用户行为对齐。
同样,ghostel 里 Claude 完成但 buffer 不刷,手动输入才刷新,也不是“AI 工具偶尔抽风”。这暴露的是异步输出、UI 刷新、buffer 状态同步之间缺少可靠触发机制。AI Agent 接进编辑器后,最先考验的不是模型能力,而是事件循环和状态可见性。
3. jj 的 op-log / evolog 其实给了一个更大的启发
majutsu 想补 op-log、evolog,又做 majutsu-gerrit,这条线和上面的 spam、性能问题是同构的:复杂系统需要“操作历史”,而不是只看最终状态。
Git reflog 解决一部分“我刚才做了什么”;jj 把演进和操作变成一等对象。对 Emacs 工具、AI 辅助、社区治理也一样:不要只问“现在对不对”,要能回答“它为什么变成这样、谁触发了、能不能回滚”。
可继续实践的方向:选一个今天出现的小痛点做最小可观测化实验。比如给中文分词进程加生命周期日志,或给验证 bot 记录挑战结果和人工放行原因。先把系统从“凭感觉”变成“有证据”,优化才有入口。
Emacs 轻聊讨论组
好的,各位看官,群聊记录已消费。作为资深编辑,我将这些碎片化的讨论、碰撞与顿悟,进行了一次深度索引和知识蒸馏。请注意,这 520 条消息信息量爆炸,我已尽力去芜存菁,提炼出最具价值的干货。
🎯 核心热点与专题探讨
专题一:AI 驱动开发的“工业化”困境与“对抗式”Review
这是全天的持续最久、讨论最深入的议题。焦点并非“AI 能写代码吗?”,而是“写完之后怎么办?”。群友普遍意识到,当前 AI 生成代码的能力已远超人类审阅和管理的能力,从而形成了一个人类卡在 Review 环节的瓶颈。
核心痛点:
- 规模失控:Codex 在一次项目里生成一两万行代码,人类无力 Review。
- 理解断层:全盘交给 AI,开发者会对项目整体失去概念,导致后续维护完全依赖 AI,形成新的技术债和依赖。
- “灵感”陷阱:一个未经完整设计、仅凭灵感驱动的项目,被 AI 快速“堆砌”出来后,最终只能被迫终止。群友直言:“不经过设计,仅靠灵感而被迫终止的项目。”
解决方案与理论探讨:
- 宏观设计优先:多位群友强调,设计(Plan/PRD/Spec)是软件工程的“织布”过程,必须由人类主导。AI 能干的只是“织布”后(生成基础代码)和“裁剪成衣”(打磨细节)。
- “对抗式 Review”(Adversarial Review):主流且有效的思路。用更好的 Agent 去 Review 另一个 Agent 的代码,形成内部闭环,将人类从繁琐的微观审查中解放出来。经典案例是 Loop Engine。
- 多 Agent 方案与知识沉淀:群友分享了复杂的工作流,将 Agent 的 Session 与 Task、Note、Project 关联,试图让 AI 产出的知识能被其他 Agent 和人类复用。核心是 Agent 间协作的上下文与知识管理。
- 结构与可视化:提出用 AI 生成软件工程相关的各种图表(如架构图、时序图),从多个维度直观把握代码的整体和细节,以辅助 Review。
- 终极目标:人类从开发流程中抽离,只负责定义目标和设计蓝图。这被类比为纺织业的“黑灯工厂”。
金句与反思:
- “人类卡在 review 这一环,就无法真正的工业化。”
- “如果只是织布,应该不需要人了,但裁剪成衣,还是需要人的参与。”——这是对 AI 在软件开发中角色的精妙比喻。
专题二:Gerrit 作为一种“知识沉淀”的代码审查工具
与 GitHub PR 的对比引出了对 Gerrit 的深度讨论,其核心价值并非简单的代码审查,而是一种面向未来的知识管理。
vs. GitHub PR:
- 粒度:Gerrit 是 per-commit review(天然小粒度),PR 是 feature-branch(容易失控成大坨)。
- 评论留存:Gerrit 的 comment 是挂在 change 上的,代码被重写或删除后,讨论依然独立存在,可回溯。GitHub 的 outdated comment 基本作废,squash merge 后历史断裂。
- 与 Git 历史的对齐:Gerrit 的 change 与 commit 是 1:1 的,Git 历史即 Review 历史。这与
jj的change概念完全对齐。 - 可搜索性:已合并的 change 在 Gerrit 中仍然是一等公民,可独立检索、按文件/作者查询,回溯成本极低。
结论:Gerrit 被群友视为一种对抗代码的“熵增” 和沉淀工程智慧的工具,让 Review 的讨论真正与软件的生命周期长在一起,而不是一个最终被归档废弃的网页。
专题三:个人工作流与“数字极简”美学
从桌面搭建、Workspace 管理到 Linux 发行版/窗口管理器选择,展现了硬核玩家对效率和确定性的极致追求。
- 硬件与手速:带轨迹球的键盘、提升参与感的“半古法”(手动 copy paste 代码而非自动 agent)、减少空间干扰的空房间。
- Workspace 哲学:从
S+1..5的键盘映射到终端/浏览器/Emacs/scratch 的分区,体现了一种将认知负载物理化、机械化的智慧。 - 系统安全与复现:NixOS/Guix 是高频答案。群友认为,“可复现的配置能够提供无与伦比的稳定感和安全感”,设备可以坏,但“环境还在”的安心感远超一切。甚至有人提到用 tmpfs 做系统根目录,重启即“格式化”,只保留真正掌控的东西。
- 极致与割舍:对
follow的不耐烦(回归elfeed)、对voidlinux(BSD 味道)的评价,以及对某个截屏软件默认ctrl+a的吐槽,都反映了这群人对“正确性”和“不妥协”的执着。
专题四:对 AI 产业的“祛魅”与冷静观察
除了技术讨论,群内对 AI 行业的商业模式、国产模型的现状、算力泡沫等有尖锐的洞察。
- 国产模型的努力方向:认为国内模型走的路线是“长推理链 + 超大上下文”,由于算力不足,Tps 不高,所以需要靠更长的思考时间来弥补,并开始卷
effort控制。 - 豆包 vs. Claude 的“算力偷渡”:发现豆包(字节)的平台上出现了 Claude 模型(如
Fable-5)的中转,讨论背后是头部公司的算力储备和“合作”的合法性。 - 盈利困境与社会期待:群友犀利指出,“AI 写代码还不算是一个被验证可行的领域”,“这东西(AI Coding)本身不盈利,他的用户也没有明显效益”,并质疑这是否是“泡沫”。但同时,大家又坚信国内有“集中力量办大事”的传统和产业追赶能力(类比原子弹、电车)。
- 硬件上的“追芯”:对华为 3D 堆叠芯片设计的讨论(从逻辑布局上减少通信路径,而非简单堆叠),体现了对底层硬件演进与 AI 性能关系的深度关切。
专题五:人类的孤独感与 AI 的联结
对话在深夜转向了情感和存在主义议题。从一个人爬山、受伤后无人帮助的狼狈,到去博物馆后对孙中山传记的感动落泪,再到对 NixOS 的“安全感”哲学的共鸣。
- 核心观点:人对“确定性”、“稳定感”、“陪伴”的渴望,驱动了对技术(如可复现系统、AI 助手)和情感的双重追求。
- 哲学探讨:对
gerrit的讨论超越了工具本身,变成了“我们该如何对待知识、记忆和连接?”的延伸。有人提议“要和 Emacs 社区的哲学家们交流一下”。
🔑 关键概念与技术解析
- Contrastive Review / Adversarial Review(对抗式审查):一种 AI 代码审查的策略。不是让人类直接审查 AI 代码,而是让专门的 Reviewer Agent 与 Coder Agent 进行协作博弈,以最小化人类干预。本质是自动化质量闭环。
- JJ / Gerrit:
jj是一个开源版本控制系统(类似 Git 的增强版),其核心概念change与 Gerrit 的change完美对齐。它们共同提供了一个“审阅即提交,历史即讨论”的模型,被认为是 “代码审查的终极形态”。 - Harness(马具/脚手架):在 AI 领域指代“AI 应用框架”或“开发工具链”。群友提到 DS(深度求索)的 harness 负责人在招聘,暗示其模型虽强,但在工具链集成、可操作性上可能尚有不足。
- Scotch / 3.5D / 3D 堆叠:华为的 3D 堆叠芯片设计,不是简单地将不同芯片叠在一起,而是在逻辑设计阶段就将相近功能的计算单元进行“逻辑堆叠”,以大幅缩短芯片内通信路径。这超越了将内存堆叠起来的传统做法,但面临着巨大的散热挑战(群友讨论中液体散热的可行性是关键疑问)。
- SQLite-WAL 模式:在 Codex 的
#17320bug 中提到的,因为TRACE日志无视RUST_LOG过滤,导致-wal文件被无差别写入,显著消耗 SSD 寿命。Bug 核心是日志 sink 的配置错误。 - Pi (项目名):一个群友推荐的多模型 CLI 编码工具,兼容
codex/claude code,支持斜杠命令透传,实现同一个路径下的“聊天模式”与“编码模式”切换。
💎 碎片知识与金句拾遗
- 工具推荐:
- Graphify:一个最近热的工具,未具体展开,可关注。
- Understand-Anything:另一个热工具。
- Contextual Retrieval (Anthropic 博客):关于如何让 RAG 更有效的思路。
- Oh-My-OpenCode-Slim:一个重构后的 OpenCode 插件。
- Akita On Rails - AI Memory Emergent Architecture:关于 AI 记忆架构的长文。
- 项目喜忧参半:
- 群友强烈不推荐
火山引擎的 Coding Plan,原因是多模态模型处理图片时频繁报错。
- 群友强烈不推荐
- 生活/硬件细节:
- 舒尔 SM58 麦克风用来录音是经典选择。
- 一个人的理想房间:“床、健身器材、电脑、生命维持系统(水)、面纸。”
- 一句关于孤独的感慨:“我本来就是一個非常悲观、非常消极的人。看完孙中山的一生经历,我直接哭了,我再也不做一个消极的人了。”
- 冷知识:
RUST_LOG环境变量是 Rustlogcrate 的过滤机制,但 Codex 的 SQLite sink 没有继承它,导致日志爆炸。这是一个典型的组件耦合问题的案例。- 一个冷门 Tip:用
sqlite trigger可以临时阻断 Codex 对 SSD 的写入:CREATE TRIGGER IF NOT EXISTS block_log_inserts BEFORE INSERT ON logs BEGIN SELECT RAISE(IGNORE); END;。 宝子/老铁这类称呼的来源是抖音 / 东北方言,并非所有地区通用。jj forklift是一个可以让你在jj上玩 GitHub PR 的工具。
🛠️ 值得深入研究的点 (Follow-up)
- “AI 遗忘”创新机制:X 上有人尝试通过让 AI 遗忘特定概念,创造新文字(字母/汉字)。这不是无意义的折腾,它可能指向一种摆脱训练数据模式、实现“真正原创”的路径。
Fugu项目:https://sakana.ai/fugu/ 来自日本 Sakana AI 的“编排器”项目,虽被群友怀疑有学术造假的传闻,但其设计思想值得关注。- Code 与 Spec 的版本共生:群友探讨的将
Code Review反馈和注释沉淀到spec(设计文档)的理念,是解决“AI 生成代码黑盒”和“人类理解断层”的值得尝试的方案。 - 配置即文档的可复现系统:NixOS/Guix 不仅提供“稳定感”,其背后的声明式配置思想,正在改变“系统管理”和“环境构建”的方式。它与容器、Cloud OS(如 CoreOS)的关系值得深挖。
🧠 Hermes GPT-5.5 观点延伸
今天最值得咀嚼的不是“AI 能不能写代码”,而是:软件工程一旦进入 Agent 规模化生产,真正稀缺的东西会从“写代码能力”转移到“可追责、可复盘、可继承的判断系统”。
1. Review 不是找 bug,而是给未来留下判断依据
群里反复提到 Codex 一次生成一两万行、人类无力 review,以及“全交给 AI 后人类对项目完全没概念”。这说明问题不只是代码量大,而是判断链断了:为什么这样设计?为什么这个 tradeoff 可以接受?为什么这个实现被否决?
如果 review 只停留在“发现问题”,那确实可以交给更强的 reviewer agent。但如果 review 的价值是沉淀工程判断,那它必须变成一种可查询的历史资产。否则 AI 修完 bug,项目仍然更难理解。
2. Gerrit 的吸引力,本质是反熵
Gerrit 被讨论得很重,不是因为它比 GitHub PR 更“古典”,而是因为它把 review、change、commit 绑在一起。一个 change 对应一次可讨论、可搜索、可回溯的工程判断。
这和今天前面关于 AI 代码 review 的焦虑正好接上:AI 时代最危险的不是代码写得快,而是上下文消失得快。GitHub PR 的 outdated comment、squash 后断裂的历史,在人类慢速开发时代还能忍;到了 Agent 高频改写时代,就会变成知识粉碎机。
3. Spec 不是万能记忆,评论也不能只活在代码里
晚上关于“comment 要不要整理进 spec / 注释”的讨论很关键。Spec 适合放稳定意图,代码注释适合解释当前实现,但 review comment 常常是“过程性判断”:某条路为什么没走、某个方案为什么暂时接受、某个风险为什么被压后。
这类信息不该全部污染 spec,也不该跟着被删除的代码一起消失。它更像尸检报告、实验记录、设计考古。工程系统如果没有这种中间层,AI 产生的速度越快,团队失忆也越快。
可继续实践的方向
可以做一个最小实验:用 jj/Gerrit 或等价机制,把每次 Agent 产出的 change 拆小;每个 change 强制生成三类记录:意图、review 结论、被拒方案。然后测试一个月后能否回答“当时为什么这么改”。答不上来,说明你只是让 AI 写代码;答得上来,才开始接近 AI 软件工程。
