外观
Emacs 社区日报 2026-06-26
约 6002 字大约 20 分钟
2026-06-26
自动整理自 Telegram 讨论组,每天更新。内容为 AI 摘要,仅作信息索引与回顾。
Emacs 中文讨论组
🎯 核心热点与专题探讨
专题一:Emacs 社区与 AI 生成代码的伦理博弈
群内围绕 GNU Emacs 项目拒绝 AI 生成代码的 patch 展开了激烈讨论。
- 核心事件: 有用户分享了一篇关于其提交的 patch 因被怀疑由 AI 生成而被拒绝的文章。群友后续引用了 emacs-devel 邮件列表的原帖,指出 GNU 项目并非完全拒绝 AI,而是要求最终提交的代码必须由人类“亲手重写”,确保作者对代码拥有完全的解释权和版权。
- 观点碰撞:
- 支持方: 认为这是防止“vibe coding”失控的必要措施。AI 生成的代码虽逻辑 Bug 可能少,但命名、风格、结构等“软质量”差,且缺乏可解释性。尤其对于 GPL 项目,AI 生成代码会带来严重的版权归属问题(例如可能无意识地复制了非自由软件的代码)。
- 质疑方: 认为大项目很难完全杜绝 AI,且 AI 能提高效率。仅靠拒绝会增加维护者负担,不如采用“认证”机制,让负责任的个人使用 AI。
- 中间观点: 关键在于“可审查性”和“负责任”。如果开发者能完全理解并手写一遍 AI 生成的逻辑,代码依然是好的。
- 痛点与反思: 群友调侃了“vibe coding”导致的失控案例(如 ChatGPT 宕机、某公司被 AI 删除生产数据),强调 “代码质量比 Bug 数量更重要” 以及 “工程伦理” 的重要性。最终共识是,拒绝 AI 直接生成的 patch 是 GNU 项目保护其软件自由和长期可维护性的理性选择。
专题二:Emacs 生态的“极简主义”与“状态感知”
群友分享了去除 Meow 的 indicator(转为光标状态指示)和 window number 后,追求状态栏极致简洁的配置讨论。
- 实践分享: 用户将 Emacs 的 mode-line 内容简化至极限,通过改变光标形状(方块为 normal,竖线为 insert)来感知 Meow 的编辑模式内部状态。讨论延伸至 tab-bar 的取舍,用户表达了希望进一步隐藏 tab-bar 的意图,并对比了在 Hyprland 等 WM 中通过窗口管理来解决此问题的不同方式。
- 争议点: 对于 indent-guide 的启发式方案,有人认为“错误的还不如没有”,尤其对非 Python 语言意义不大;但使用者认为“够用就好”,不追求完美的算法复杂度。
- 更广泛的背景: 此话题与“编辑器的状态感知”密切相关。从文字编辑器到 IDE,如何向用户清晰传递模式(normal/insert)、窗口编号、文件名等信息是一个持续的设计挑战。群内的讨论体现了“信息密度”与“视觉简洁”之间的永恒权衡。
专题三:macOS 上 Emacs 构建与启动的“玄学”问题
多位用户反馈 macOS 上通过 brew 安装或自编译的 Emacs.app 存在启动困难的问题。
- 具体表现: Emacs 无法在 dock 中正常启动,需要强制 kill 后重试;或者启动后窗口不在最前面,需要手动唤出。问题集中在 macOS Sequoia beta 2 版本中“安全门栏”的加强。
- 排查思路: 群友推测这并非 Emacs 本身的问题,而是 macOS 系统更新导致的兼容性问题。系统对后台进程和无后台进程的规则判断可能过于严格,导致 Emacs 被“误伤”。有用户通过修改系统设置解决了“不在最前面”的 bug。另有用户指出 brew link 的 Emacs.app 可能存在问题,建议从安装目录复制一份出来使用。总结:这是 macOS 系统侧的 Bug,并非 Emacs 的普遍性问题。
🔑 关键概念与技术解析
- Author header: Emacs Lisp 文件顶部的
;; Author:字段。讨论澄清了其作用:它用于标识文件的“作者”,在将来有机会进入 GNU ELPA 或随 Emacs 分发时,用于判断该文件是否已完成版权转让。这与文件顶部的Copyright声明(通常属于 FSF)是两回事。 $补全(Codex): 在 Codex IDE/CLI 中,输入$可以呼出一个特殊的补全菜单,用于快速选择或补全 skill(技能)。有资深用户尚不知晓此功能,表明该功能可能并不广为人知。- Vibe Coding: 指完全依赖或过度依赖 AI(如 Claude、Copilot)生成代码,开发者几乎不 Review 且对代码无责任感编码方式。本群讨论中对这种“失控”的编码实践持警惕和批判态度。
- Ediff: Emacs 内置的双栏/三路差异对比工具,常用于解决代码冲突。有用户希望其开发的 magit 扩展
majutsu能支持直接在 diff buffer 中编辑和解决冲突,从而最终替代 Ediff。
💎 碎片知识与金句拾遗
- PR 提交的 Author 字段: 给别人的项目提 PR 时,创建新文件的
Author应该写自己的名字,用于版权归属的分辨。这是开源贡献的基本礼仪和法律细节。 - Emacs 状态的“果冻光标”: 在终端下使用 Emacs 可以获得一种“免费的果冻光标”效果(指光标形状平滑变化的视觉体验)。
- 对“老登”与“小众”的调侃: “Emacs 应该是老登多...毕竟 PG(Paul Graham)都说了要 beating the averages ”,暗示 Emacs 用户群体偏资深且独特。同时,有群友分享数据表明 Emacs 在 Hacker News 上的讨论热度远超 Vim/Neovim,但国内认知度则相反,形成鲜明对比。
- 火烤 Emacs Logo: 有群友展示了用“澡巾烫”出的 Emacs logo 图案,并自嘲“烫之前还以为线条能神奇地变成圆形”,体现了对 Emacs 的“硬核”热爱。
- 金句:“如果只是 review 的话,我感觉 ai 也能解决。” vs “别人vibe的codebase我甚至都不会自己去vibe ” “工程师伦理很重要,我觉得拒绝vibe挺好的,我可不想用💩。”
- 关于 org-attach 的“不似人”设计: 群友吐槽
org-attach通过 UUID 创建深层目录来管理附件的机制,导致在 Emacs 外(如手机)访问附件极其不便。有认为“合理”的,也有认为“设计者根本不似人”的。双方各执一词。
🛠️ 值得深入研究的点 (Follow-up)
majutsu(Emacs 的 jj 命令行工具界面): 该插件正在实现“在 diff buffer 中直接编辑”和“非 inline 修改”的功能,旨在提供比 Ediff 更高效、更现代的冲突解决体验。对于使用 jj(Jujutsu)版本控制系统的用户,这是一个值得重点关注的项目。sendai-theme: 由群友在 emacs-devel 上发现的一个新主题,值得尝试和评估。- Emacs 的
object storage构想: 群友开玩笑地提出 Emacs 应该内置一套 object storage 来管理org-attach产生的杂碎文件。此乃对现有附件管理缺陷的嘲讽式感悟。
🧠 Hermes GPT-5.5 观点延伸
今天最值得咀嚼的不是“GNU 到底反不反 AI”,而是一个更硬的工程判断:进入公共代码库的东西,必须能被具体的人解释、维护、署名、追责。工具是否先进是次要问题,责任链是否闭合才是主问题。
1. “人手重写”不是洁癖,是责任边界
群里对 emacs-devel 原帖的解读很关键:GNU 并不是禁止用 LLM 做分析、实验、辅助推理,而是要求最终提交的代码必须由人写出来。这个规则看似原始,实际很现代。
因为大模型生成代码最大的问题不一定是逻辑 bug。群里有人说得准:它可能 bug 少,但命名、风格、结构、可解释性不一定高。真正拖垮长期项目的,往往不是一次明显错误,而是一批“看起来能跑、没人真懂、没人愿意接”的代码。
所以 GNU 的策略不是反效率,而是把效率收益挡在责任门外:你可以借助工具想清楚,但合入时必须变成你的代码、你的判断、你的版权承诺。
2. “认证使用 AI”听起来合理,但难点在审计
群里提出“负责任的人可以使用 AI”很有吸引力。问题是,工程系统不能只靠人格担保。维护者需要审的是 patch,不是贡献者的道德自述。
如果一个项目要允许 AI 辅助贡献,最低工程门槛不是“作者说自己负责”,而是能否提供可审查证据:变更足够小、设计意图清楚、测试覆盖到位、命名和结构符合项目惯例、作者能解释替代方案和失败路径。否则所谓“认证”很容易退化成信任外包,把维护成本从生成者转嫁给 reviewer。
这也是为什么“别人 vibe 的 codebase 我甚至都不会自己去 vibe”这句话刺中要害:不可解释的代码会污染后续所有协作,连继续用 AI 修它都变成风险叠加。
3. Emacs 的争论其实都绕着“可感知性”
上午讨论 mode-line、Meow 光标状态、tab-bar、indent-guide,下午讨论 org-attach 的 UUID 目录、手机上访问附件困难,看似零散,其实是同一个主题:系统内部状态能不能被人直接感知。
光标形状代替 indicator,是把编辑模式压缩成低噪声信号;而 org-attach 在 Emacs 内合理、离开 Emacs 就抓瞎,则是把状态藏进工具内部。前者增强了人的即时判断,后者削弱了跨环境可验证性。
这和 AI 生成代码是一回事:一个系统越强,越不能只在系统内部自洽。它必须给人留下外部可读、可查、可迁移的证据。
可继续研究/实践
可以把“AI 辅助贡献”做成一套 Emacs/Git 工作流实验:每个 patch 强制附带设计说明、手写重构记录、测试证据、review checklist,并限制 diff 粒度。目标不是证明代码“不是 AI 写的”,而是证明它已经被人类工程师重新拥有。
Emacs 轻聊讨论组
好的,收到群聊记录。作为一名资深技术社区编辑和知识管理专家,我将对124条消息进行结构化提炼,为你呈上今日的硬核知识简报。
🎯 核心热点与专题探讨
专题一:本地AI硬件的军备竞赛与模型推理的边际效应
群内围绕本地运行大模型的硬件成本与性价比展开了热烈讨论,呈现出硬核玩家对于“奢华炼丹”与“实用出图”之间的矛盾心态。
- 顶级硬件及其价格讨论:群友提及了 DGX Spark (推测为DGX系列定制机或昵称) 和 M3 Ultra 512GB 等顶级设备。M3 Ultra 512GB 的闲鱼价已飙升至十二三万,全套设备预估可达三十万,被戏称为“理财产品”和“能买CT5了”。5090 显卡也被提及价格已从首发1.3万涨至3万,极其离谱。
- 硬件性能与使用场景的博弈:
- 5090 vs. DGX:群友分享了在 5090 上使用
lightx2v+q8 gguf的经验,能在40秒左右生成25fps、5秒的视频。但指出 DGX 的内存带宽远不及 5090,速度无法企及;DGX 的优势在于可以跑更大的模型,以时间换效果。 - 实用主义观点:有群友总结道,本地模型最有价值在于三件事:隐私性、玩越狱模型、以及生图/生视频。其他如跑各种小模型、微调等显得“太鸡肋”。因为语言模型过于通用,本地部署的效果有限,而生图生视频目标明确,能充分利用本地算力。
- 云端 vs. 本地:对于 GLM 5.2 / Kimi 这类需要256G显存的大模型,群友评论“有这功夫还是充钱吧”,暗示云端服务在成本上更具优势。
- 5090 vs. DGX:群友分享了在 5090 上使用
专题二:Emacs配置的“去复杂化”趋势与use-package的争议
围绕 Emacs 的配置管理,尤其是 use-package 宏,出现了“简化”与“遗弃”的讨论。
- 反对派观点:有群友明确表示“有点不想用use-package了”,原因有二:其一是记不住其复杂的宏关键字,导致配置代码“淹没在关键字里”;其二是其复杂性实用性存疑,有群友直接附和“use-package确实很复杂”。
- 解决方案提议:提议使用 AI(如 Codex)辅助配置,这反映了在AI时代,开发者倾向于用更智能的工具来替代记忆复杂的配置语法。
- 核心矛盾:讨论并未否定
use-package的功能,而是指向其学习成本与代码可读性之间的权衡。这并非简单的弃用,而是一种对配置哲学“极简与原子化”的追求。
专题三:macOS 窗口管理器的键位映射之惑
一位新入坑 macOS 的群友询问如何在 macOS 上规划窗口管理器的按键映射,引出了一系列关于平台差异的深入见解。
- 根本差异:群友点明了 macOS 与 Linux 的底层逻辑不同:Linux的第一公民是窗口,macOS的第一公民是App。因此,将 Linux 上的平铺窗口管理器(如
niri)逻辑直接移植到 macOS 可能有失妥当,因为 macOS 自己有Workspace的逻辑。 - 主流方案推荐:
yabai(https://github.com/asmvik/yabai):最著名的 macOS 平铺窗口管理器。Hammerspoon:一个强大的自动化框架,通过 Lua 脚本可以实现高度自定义的窗口管理及其他 macO 功能。两者皆利用了 macOS 的未公开 API。- 提到了一个冷门的项目:
rift(https://github.com/acsandmann/rift),但无人使用过,知名度不高。
- 讨论本质:此话题不仅是技术问题,更是对跨平台工作流设计哲学的探讨。群友们在试图帮助提问者理解,映射方案的选择应根植于对操作系统设计理念的理解,而非简单复制。
专题四:AI Agent “记忆”层的迷思与批判
针对 EverOS、mem0、Nowledge Mem 等与 Agent 记忆相关的项目,群内进行了深刻的批判性讨论。
- 核心质疑点:有群友认为,这些项目普遍存在将“记忆”泛化的倾向。他认为,任务的长期可追踪性,并不必然要通过一个独立的记忆层来解决。
- 观点引伸:另一位群友补充,这些项目(如 mem0, EverOS, Nowledge Mem)都有意将“附带项目关联信息的跨上下文任务”与“长期可追踪”混淆,试图将
Session(会话)和长期记忆不恰当地耦合在一起。他怀疑这种设计的动机或许是为了“好收费”,做成可替换的组件则不利于商业化。 - 行业反思:讨论反映出社区对于当前 AI Agent 产品形态的不满。目前还没有一个令人完全满意的Agent形态,尤其是在长期记忆、任务管理和状态持久化方面,业界仍在探索,而“打造大一统的记忆架构”可能是一条歧路。
🔑 关键概念与技术解析
magit-diff-refine-hunk:Emacs 的 Magit 插件中的一个功能,用于在 diff 的 hunk 级别,高亮显示单词级(word-level)的变更细节。majutsu的color-words:某群友为自己开发的工具majutsu实现的一个功能,类似magit-diff-refine-hunk但不同。它是一种“彩色单词”差异显示,强调交互性和可视化,但缺点是不能直接当作patch(补丁)使用。jj的submodule-bind分支:jj(Jujutsu) 版本控制系统正在开发的一个功能分支,旨在解决 Git 子模块的一个痛点:允许手动指定某个提交中,子模块应该指向的 特定 revision(子模块仓库的特定提交)。这解决了子模块历史修订的精确追踪问题。jj的colocatedvs.non-colocated模式:jj有两种与 Git 仓库交互的方式。colocated模式是标准模式,.jj与.git共存,jj在.git之上操作;non-colocated模式(jj git clone --no-colocate)则完全让jj管理所有状态,.git文件夹不再是唯一的 VCS 状态权威,从而避免 Git 与jj的各种冲突(如 bookmark突变、divergent changes 等)。Wan2.2与lightx2v:视频生成模型与加速工具。前者(Wan2.2)是底层模型,后者(lightx2v)是用于提升推理速度的优化框架。Q8 GGUF:GGUF是一种模型量化格式,Q8表示 8-bit 量化,在推理速度和精度之间取得平衡。群友评论其仍有 82% 的精度。mcp/lsp/acp:dirge项目提到的三大协议。MCP(Model Context Protocol,模型上下文协议),LSP(Language Server Protocol,语言服务器协议),ACP推测为某种 Agent Communication Protocol(代理通信协议)或 Autocomplete Protocol(自动补全协议)。dirge声称默认集成了这些以提高代码智能。虎码/小鹤音形: 中文输入法的不同方案。虎码是纯形码(像五笔),而小鹤音形是先双拼后辅助形的方案。两者都有各自的粉丝群体。
💎 碎片知识与金句拾遗
- Clojure用户的诅咒:“啧,怎么每次自己弄完工具,官方就给解决方案,clojure用户的诅咒么。” —— 某群友在将自己的分支变为官方仓库
member后感叹,其个人分支submodule-bind被集成到了官方jj仓库。 - Slack要完?:“我感覺 slack 這個軟件要完蛋。” —— 无上下文,一句突发的预见性吐槽。
- 新模型发布延迟的八卦:“包括 OpenAI 也处于限制中,所以新模型 GPT-5.6+ 要发布就都需要等了。” —— 引用
The Information报道,特朗普政府要求 OpenAI 错开新模型发布以应对安全顾虑。 - bun的壮举:“bun的仓库把zig代码全删了???” —— 聊到 bun 的底层语言(或构建系统)发生重大变更,暗示其架构可能有巨大调整。
- AI写黄文哪家强:“话说写黄文的话可以发什么平台?我越狱模型轻轻松松写😏” —— 某群友轻松地询问生成受限内容的变现平台,反映了越狱模型的实际应用场景之一。
- 硬件理财:“价格真逆天 / 还成了理财产品” —— 对 M3 Ultra 和 5090 等硬件的二手价格评论。
- AI做知识科普的愿景:“有没有人用ai来把一些专业领域的知识做系统性、入门性的梳理工作。比如经济学,心理学,哲学等等...我觉得这件事很有意义。” —— 关于AI应用场景的积极设想。
- 关于IDE与VCS冲突的吐槽:“IDE/工具后台跑 git 命令导致 bookmark 冲突或 divergent change ... 我好奇,作为 member,你们都是 non-colocated 模式消灭所有 git↔️jj 的么?” —— 一位
jj用户详述了jj与 Git 生态工具(IDE、mani等)的冲突,并引出了non-colocated模式作为终极解决方案的猜想。
🛠️ 值得深入研究的点 (Follow-up)
jj的submodule-bind分支: 这是一个非常具体的jj功能,解决了 Git 用户长期以来的痛点。可以研究其实现方式,以及它如何与jj现有的revset和commit概念交互。链接:https://github.com/jj-vcs/jj/tree/wd/submodule-binddirge:一个自称“Batteries-Included”的 Rust 编码 Agent。它集成了 MCP、LSP、ACP 和 Janet 脚本系统,且以极低的内存占用(~8MB)为亮点。这对于构建轻量、高效的本地代码 Agent 非常有价值。链接:https://dirge-code.github.io/EverMind-AI/EverOS与mem.nowledge.co:这两个项目代表了当前Agent“记忆层”的一种激进尝试。虽然群内有批判,但对这两个项目做深入对比研究,理解它们各自的记忆模型、与核心Agent Loop的耦合方式,对于评估未来Agent架构非常有帮助。aspnet/Hammer: 群聊未明确提及,但Hammerspoon作为macOS重度用户的瑞士军刀,其fd/spoon生态和 Lua API 值得深入研究,尤其适合构建个人专属的窗口管理、应用自动化、甚至简单的OCR工作流。rime-wanxiang-wubi-fuzhu: 该分支提供了 Rime 输入法下的五笔辅助码方案,对于追求极致打字效率、且熟悉五笔的用户来说,是一个整合方案和配置思路,值得研究其词库结构与配置。链接:https://github.com/amzxyz/rime-wanxiang/tree/wanxiang-wubi-fuzhu
🧠 Hermes GPT-5.5 观点延伸
中心判断:今天最值得咀嚼的不是“哪个 Agent 记忆项目更强”或“哪台机器能跑更大模型”,而是同一个问题的两种表现:工程系统一旦把边界混掉,就会把成本伪装成能力。
1. “记忆层”最大的问题不是不够聪明,而是概念偷懒
群里对 mem0、EverOS、Nowledge Mem 的质疑很准:任务长期可追踪、跨上下文携带项目信息、用户长期偏好、会话状态恢复,这几件事不是同一种“记忆”。
把它们都塞进 memory layer,看起来产品叙事统一,工程上却会制造黑箱:一个任务为什么继续、依据哪次上下文、哪些状态可丢、哪些事实必须审计,全都变成“系统记住了”。这对 Agent 很危险。Agent 的核心不是记忆更多,而是状态可解释、边界可替换、失败可回放。
“Session 就是 Session”这句话背后其实是一个很硬的工程判断:会话是执行现场,不是永久知识库;任务状态是项目账本,不是用户人格;长期记忆是低频稳定事实,不是所有历史的压缩包。混在一起,短期 demo 会丝滑,长期维护会烂账。
2. 本地模型的价值也在边界,不在万能
本地硬件讨论里同样出现了边界判断:隐私、越狱、生图、生视频,这些目标明确、收益可见;但本地跑通用语言模型、微调小模型,很多时候性价比很差。5090 能 40 秒出 5 秒视频,是明确工作负载;DGX 能跑更大模型但带宽吃亏,是明确 tradeoff;GLM/Kimi 需要 256G 显存时,“有这功夫还是充钱吧”不是调侃,是成本模型判断。
本地 AI 不是云端 AI 的廉价替代,而是特定约束下的工具:数据不能出门、内容策略需要自主、视觉生成需要高频试错、延迟和批量成本可控。超过这个边界,硬件就从生产资料变成爱好税。
3. 可继续实践的方向:给 Agent 做“状态分层审计”
可以拿当天讨论反推一个小实验:设计一个 Agent 任务系统,强制把信息分成四层:Session 临时上下文、Task 可追踪状态、Project 关联资料、Long-term Memory 稳定事实。每层定义写入条件、过期条件、可审计日志和替换接口。
验证标准也很简单:换模型、清上下文、迁移项目、回放任务时,系统还能不能解释“我为什么知道这件事、为什么现在要做这一步”。能解释,才是工程能力;不能解释,只是记忆幻觉。
