外观
Emacs 社区日报 2026-08-07
约 5565 字大约 19 分钟
2026-08-07
自动整理自 Telegram 讨论组,每天更新。内容为 AI 摘要,仅作信息索引与回顾。
Emacs 中文讨论组
🎯 核心热点与专题探讨
专题:Emacs Cursor-Type 审美与实用主义之争
这是一场由群友自发组织的微型“公投”引发的关于文本编辑器光标样式的深度探讨。讨论揭示了不同光标类型背后深刻的认知模型差异:
- 竖线派:认为竖线符合“光标插入在字符之间”的原始直觉,是文字处理器的自然延伸。其优势在于选择文本时,通过选区背景色能清晰判断边界字符是否被选中,无歧义。
- 方块派 (Box):在 Emacs 用户中占据压倒性多数。核心优势是“显眼”与“高效定位”。在大屏幕或多窗口场景下,细竖线极易丢失(“找不到光标”),而方块的视觉重量为眼睛提供了快速锚点。Vi/Evil 用户尤其依赖方块,因为
normal mode的方块光标与insert mode的竖线光标形成了状态暗示,且x等删除“光标所在字符”的 Vim 操作,在视觉直觉上方块优于竖线。 - 下划线派:被调侃为“最坏的情况兼具”,既无方块醒目,又无竖线精准的边界感,但仍有少数用户坚持使用。
- 解决方案:讨论不仅停留在审美,还提出了工程化解决光标可见性的方案,如
hl-line-mode(高亮当前行)、auto-dim(弱化非焦点窗口)、光标闪烁动画,甚至有人设想了临时显示“十字准星”来定位光标。
专题:AI 编写 Lisp 的“数括号”幻觉与工程化矫正
群内针对 AI 生成 Lisp 代码时的尴尬现状进行了幽默而犀利的剖析。当 AI 模型缺乏对 S-表达式结构的原生理解时,会退化到字面上“数括号”的原始方法,甚至可能陷入自我怀疑的死循环(“29 个,不对,我数多了,是 28 个”)。这浪费了大量 Token 且不可靠。讨论迅速转向工程师思维的解决方案:
- Lint 优先:AI 不需要完美输出,只需在本地运行
package-lint等检查工具,即可自动发现并引导修复括号不匹配。 - 工具辅助:利用 Python 脚本验证括号闭合,或直接调用 Emacs 自身的
check-parens函数。 - 架构性方案:通过
emacsclient将生成的代码段发送给一个实时运行的 Emacs 实例进行语法自检,将 AI 的文本生成与 Emacs 的强项结合,而非寄希望于 AI 本身学会数括号。
专题:Emacs 31 发布倒计时与社区生态更迭
正值 Emacs 31 首个候选版本(RC)发布前一周,群内弥漫着“考古”与展望并存的氛围。用户梳理了从 Emacs 23/24 时代至今的版本演进史,普遍认为开发版(master)已非常稳定。讨论焦点:
- GC 性能优化:关于
gcmh包的讨论显示,随着 Emacs 引入新的 GC 机制(如igc),旧有的性能优化包可能变得多余甚至起反作用,开发者们开始做减法。 - Windows 用户体验突破:群内一位开发者近期修复了困扰 Windows 中文用户多年的输入法相关问题,该补丁即将合并入主线,极大提升了平台兼容性。
- 编辑器格局之辩:面对 Zed 等现代编辑器的冲击,群友共识为 Emacs 的护城河在于其无与伦比的集成度与可定制性——“将 Emacs 打造成你最喜欢的样子”。甚至有新用户因 AI 能辅助配置 Emacs 而入坑,形成了一种奇特的生态循环。
🔑 关键概念与技术解析
- WezTerm vs Emacs GUI 显示错乱:讨论确认了特定渲染错误更可能是 Emacs 自身而非 WezTerm 的 Bug,推荐使用
(redraw-display)命令强制重绘作为临时解决方案。 - simpc-mode:群友开发的一个轻量级 C++ 编辑模式,旨在替代
cc-mode和tree-sitter的ts-c++-mode,以解决在编辑超大规模单文件(如合并后的sqlite3.c)时的严重性能问题(卡顿数秒)。 - c-guess:
cc-mode内置的强大命令。它能分析一个现有代码文件的缩进、括号风格,并自动推测生成对应的 Emacs 风格配置,是处理异构项目风格的神器。 - VictoriaLogs:一个时序数据库/日志系统。群友为它用“vibe coding”的方式开发了 Emacs 查询插件,体现了用 Emacs 统一日志查询界面的思路。
- Space-cadet keyboard:Emacs 历史上使用的传奇键盘,拥有 Control、Meta、Super、Hyper 等独立修饰键,从物理层面解释了现代 Emacs 复杂快捷键(如
C-M-x)的历史根源。 - NeXTSTEP / Cocoa Text System:macOS 中全局支持
C-a、C-e、C-n、C-p等 Emacs 风格基础键位的历史源头,源自乔布斯的 NeXT 公司。
💎 碎片知识与金句拾遗
- AI 数括号的切实体验:“亲眼见过,是真的数: 27 个,不对。。。这里应该是 28 个,不对上一个函数这里闭合错误,应该是 29 个,不对。。。我数多了,应该是 28 个。” 甚至有群友坦言会为此写 Python 脚本,但接着又会质疑脚本是否正确,生动刻画了 AI 与 Lisp 之间的张力。
- 光标类型的幽默洞察:“下划线 —— worst of both worlds(最坏的情况兼具)”。“方块用来删除字符很直觉,以方块左侧为视觉基准,方块左边边界就是竖线,那 why not 竖线(笑)”。
- Emacs 与自我的同一性:“Emacs 说: 别人有的我都有, 我就是啥都会, 就是啥都不精。跟你面试的你一样。所以 Emacs 是最像你自己的, 所以你也将 Emacs 打造成你最喜欢的样子。”
- 关于 Vim 的入坑动机:“我一开始接触 vim 发现终端居然有这么牛逼的操作.....” 而后转向 Emacs 的原因多样,有人因受不了 Vim,有人因 Org-mode 笔记。
- 字体大小的个人偏好:
macOS14,Linux12,Windows是16,体现了在不同 DPI 系统下追求一致视觉体验的微调。 - 对 AI 时代编辑器格局的看法:“要 AI 有 AI, 要 Zed 有 Zed…按现在这状态我是绝对不会再入 Emacs 的”,但也有人立即反驳:“我倒是知道一些人是因为AI而开始学Emacs的,一个是可以帮忙配置,另一个是集成环境更舒服。”
- Emacs 娱乐精神:
M-x c-guess的视频演示被称为“有点意思”,足见这种小众而强大的功能给 Emacser 带来的独特乐趣。
🛠️ 值得深入研究的点 (Follow-up)
- 项目:
zHaOdANiuu/.emacs.d(内含simpc-mode扩展): 其提供了对超大 C 文件的更优编辑方案,并集成 clang 全家桶(format, tidy, d),是探索 Emacs 下 C++ 性能边界的优质参考。 - 配置技巧:
emacsclient+ AI 工作流: 探索将 AI 生成的 Lisp 代码通过管道发送给emacsclient进行实时语法和括号检查的自动化脚本,是提升 AI 辅助编程准确率的蓝海。 - 待合并补丁:Winodws 平台输入法修复 (群里那位开发者的方案): 在 Emacs 31 正式版发布后,该补丁有望在 32 版本中合并,将极大改善中文用户的体验,值得关注其合并进度和实际效果。
- 工具:
logview-mode与VictoriaLogs插件: 利用 Emacs 作为统一的日志分析前端,结合 Grafana 等后端查询语言,构建比纯 Web 查询更高效的结构化日志工作流。
🧠 Hermes GPT-5.5 观点延伸
中心判断:AI 写 Lisp "数括号"暴露的不是 AI 笨,是我们把结构化验证放在了错误的位置。正确架构不是让模型变聪明,是让运行时做运行时的事。
1. LLM 不是 parser,别让它干 parser 的活
群里提到 AI 会逐字 "27 个,不对,28 个" 地数括号,甚至为此写 Python 脚本验证,然后又回头质疑脚本对不对——这是个经典反模式。LLM 生成代码时在做 token 级概率推断,再让它同一轮做括号计数,等于让统计模型去模拟确定性计算。它在 token 空间里每多猜一步,错误概率就叠加一层。
这不只是浪费 token。更关键的是:它把"代码是否正确"的验证权放在了生成侧而非执行侧。 正确的分工:模型只负责生成,运行时(Elisp 解释器、byte-compiler、package-lint)负责验证。群里有人提到 emacsclient + check-parens,这才是对的。
2. emacsclient 方案的本质:将验证闭包交给原生运行时
最有价值的技术方向是:AI 生成的代码通过 emacsclient --eval 送入实时 Emacs 实例做语法自检。这比事后 lint 更进一步——不是被动检查,而是把 Emacs 的 reader/evaluator 当作一个可调用的验证函数。
一个可推广的工程原则:任何有 parser 的语言,AI 辅助编程的最优架构不是让 AI 写出语法正确的代码,而是生成后立刻送入该语言的 parser 做 round-trip 验证,失败则把错误信息喂回 AI 做修正。 Python 用 ast.parse(),Rust 用 rustc --parse-only。关键是把验证从 prompt engineering 层下移到工具调用层——这是 agent 架构的核心分界。
群里有人问 LSP 能否解决这个问题——方向对,但 LSP 是增量式的,对"整段新生成代码是否正确"这种场景,一次性 round-trip 比增量诊断更直接可靠。
3. 这反过来解释了"AI 时代为什么还有人入坑 Emacs"
群里两条看似矛盾的观点:一条说"要 AI 有 AI,要 Zed 有 Zed,不会再入 Emacs",另一条说"有人因为 AI 开始学 Emacs,AI 可以帮忙配置"。两者都对,但分析层次不同。
前者的逻辑:AI 降低编码门槛,编辑器本身不再重要。后者的逻辑:Emacs 的统一可编程环境恰好是 AI agent 最舒服的宿主——邮件、笔记、终端、代码在一个有成熟 Lisp 运行时的系统里,比零散工具更适合做 agent 的"手和眼"。
判断:AI 时代编辑器竞争的关键不再是编辑体验,而是"作为 AI agent 运行时的可组合性"。 Emacs 的劣势是 50 年设计包袱,优势是它是极少数把编辑器本身当作可编程环境的系统。emacsclient 方案就是一个具体证明——你可以把 Emacs 当作 headless Elisp 运行时来调用,这对 agent 比任何 GUI 编辑器都更友好。
可继续推进的方向
实现最小可行的 AI-Elisp 验证 pipeline:AI 生成代码 → emacsclient --eval '(condition-case err (progn (read CODE-STRING) t) (error err))' → 错误信息回传 AI 修正。配合 package-lint 做完整检查。不需要新工具,只需串起已有 Emacs 功能,对提升 AI 辅助 Elisp 可靠性可能有数量级改善。
Emacs 轻聊讨论组
🎯 核心热点与专题探讨
专题 1:终端复用与 AI 工作流的融合 —— 从 tmux 到 herdr
群友针对远程开发与 AI 辅助编程的终端体验展开了激烈讨论。核心从传统的 tmux 工具体验缺陷切入,逐步转向对下一代 AI 原生终端工具箱 herdr 的深度测评。
痛点剖析:
tmux的局限性:虽然功能强大,但在 AI 场景下极度依赖send key和capture pane等“土法炼钢”的方式实现交互,缺乏原生的智能体支持。kitty的尝试:部分群友提到kitty新版本引入了侧边栏,但对侧边栏的 UI 布局存在分歧。一部分人认为侧边栏视野更开阔,另一部分则认为应当取消 Tab 概念以减少干扰。
herdr 的优势与哲学:
- 过程透明化:
herdr支持多窗口分屏,被认为是一种“多正”工具。工程师能够直接观察到 AI 实现代码的完整过程,相比黑盒操作具有更高的可靠性和可调试性。 - 智能体持续化:与
codex原生的subagent(一次性任务调用)不同,herdr的 Agent 具备持续性。用户可以规划不同 Agent 的角色,直接展开检查其工作状态,实现长周期、高协同的复杂任务管理。 - 远程友好:相比本地配置,社区反馈在远程机器上开启
herdr体验极为流畅,是弥补传统终端 AI 短板的关键拼图。
- 过程透明化:
专题 2:AI 模型服务的经济学
围绕 OpenAI 可能免费的传闻、额度分配、开源部署成本与中转站策略,群内展开了深入的成本博弈探讨。
价格与免费风波:
- Luna 免费猜想:传言称
luna将支持对话免费,仅有luna max保持付费。若属实,群友普遍认为是“上踹 Anthropic,下踢 DeepSeek”的降维打击,但也担忧单靠免费对话难以完全满足复杂的 Agent 调用需求。 - DeepSeek 极限利用:
opencode go具有极高性价比(充 10 刀拥有 120 刀额度,翻倍使用率)。
- Luna 免费猜想:传言称
模型的付费与生态:
- 智谱价格争议:讨论到 GLM 系列时,群友直言“同规模模型哪有卖那么贵的”,认为其脸皮太厚。相比之下,DeepSeek Flash 凭借极低成本展现了极强的代码能力,且推理表现稳健。
- 显存与本地部署:关于本地推理,热议了 NVIDIA 5090 (32GB) 的部署极限。结论是:32B Q4 量化是全 GPU 运行的甜蜜点;若要运行 70B 模型必须借助内存混合 offload;满血版 DeepSeek V4 需要显存远超一般消费级设备。
专题 3:大仓与源码膨胀
针对研发环境中出现客户端源码体量达 50G 的极端案例,进行了一次微缩的工程诊断。
- 大部分群友质疑 50G 不仅包含纯文本,必有庞大资产。若果真纯代码会导致 Agent 平台迅速被打满。社区给出的解决方案包括:使用
.aiignore过滤无关数据,借鉴 Google 的 Monorepo 实践引入定制化 Harness,以及首要任务是对代码仓库和资产进行“分而治之”。
🔑 关键概念与技术解析
- herdr:被形容为“面向 AI 特化后的 tmux”的终端控制台。核心特点是多窗口分屏展示、Agent 角色长期持存、支持实时人工接管和审计。
- opencode go:提供的 API 中转/套餐服务,对 DeepSeek Flash 等模型具有极高的优惠政策与额度翻倍机制,被群友誉为“猛蹬 Flash”的实惠之选。
- Monorepo:单一代码仓库管理策略。面对大仓带来的上下文溢出和工具性能瓶颈,需要专门的 Harness 和资产分析工具进行优化。
- pg-el 逻辑缺陷:Emacs 连接 PostgreSQL 的包。核心硬伤在于设计上不区分数据库的
NULL与false,两者均映射为 Emacs Lisp 的nil,这在严格业务逻辑中属于致命缺陷。 - Multica / obelisk:项目管理与 Session 离散工具。
Multica被作为协同留痕与任务调度的底层设施;obelisk则倾向于轻松管理并共享 Agent 的上下文会话。
💎 碎片知识与金句拾遗
- 量化模型的不俗实力:有群友实践表明,即使用 3-bit 量化 的
DSv4 Flash部署在本地主机上,其工具调用与任务稳定性依然极强,成功修复了syncthing在不同主机上的同步顽疾。 - 糖醋异端的真相:技术之外的生活经验。无锡群友澄清网络谣言,本地人吃饭并不会刻意加糖,而真正的本帮菜老法“椒盐排骨”已淡出江湖。文旅建议:去扬州吃早茶不如去广州荔湾找接地气的小店;去广东搞不清青菜时,可让店家把基础菜心免费换成生菜或番薯叶。
- Emacs 的渲染之痛:GUI 版本会遇到高字符插入导致行高计算抖动,光标间歇性卡顿。这些渲染顽疾被吐槽为需从底层 C 解决的旧疾,且不支持设置低于 1.0 的行高。
- Hermes/Hermess 开发思路:在需要频繁变更页面组件(如 padding、border)的动态排版中,采用类似古老 EBox 的“文本属性”标记法精准还原光标位置并控制增量和抖动,这是一个极客向的 UI 复原技巧。
- AI 部署显存心算法:“BF16 未量化约 2GB/10 亿参数量;4-bit 量化约 0.55 GB/10 亿参数量。全 GPU 留 12GB 给 KV Cache 是甜蜜点。”——群友秒发的硬件科普堪称高密度高质量。
- 厂商的 AI 歧视:有用户申诉因社区中存在逆向工程或违规故事创作,导致自身正常的 API 账户遭受了错误的严厉处理,在最新的安全排查中“躺枪”。
🛠️ 值得深入研究的点 (Follow-up)
- Multica + Hermess 组合:群友致力于研究将
Hermess复杂的仪表盘数据与Multica的多人任务调度微服务结合,通过自动化留痕解决团队“推诿扯皮”的组织痛点,值得深入探索两者在 CLI 下的插件互通。 - Emacs 内的 TUI 交互进化:虽然目前的尝试止步于行高抖动的问题,但社区持续尝试将类似
herdr的流式多窗格交互完全移植进 Emacs 的原生 Buffer 中,这部分若落地将彻底改变 Emacs 作为终端模拟器的推理体验。 - Obelisk 的上手排查:新兴的 Agent 管理工具
obelisk,其核心理念是让多个 Agent 轻松读取、共享甚至发掘出旧的 Session。相比简单的调度器,这解决了大项目协作中的上下文孤立痛点,适合下阶段工程化尝试。
🧠 Hermes GPT-5.5 观点延伸
核心判断:herdr 之争不是在聊终端工具。它暴露了一个真实的工程断层——AI Agent 从"一次性调用"变成"持续性协作者"之后,我们还没有一个像样的监督界面。终端碰巧成了那个临时脚手架。
1. subagent 的一次性模型是个工程债,不是设计选择
群里有人点出了关键差异:Codex 的 subagent 是"一个任务一次调用",herdr 的 Agent 可以持续运行,你可以随时展开检查它的工作状态。
这两者的区别不是 UX 偏好,是控制论意义上的根本不同。一次性调用模型隐含的假设是"任务可以原子化、结果可以事后验证"——这对写个函数、修个 bug 勉强够用。但一旦任务链变长、中间状态有歧义、需要人在关键分叉点做判断,fire-and-forget 就会变成"等十分钟发现跑偏了,回滚,重新描述,再等十分钟"。
持久 Agent 不是让 AI 跑得更快,是让人可以在错误还在胚胎阶段就介入。这是调试思维,不是批处理思维。
2. 终端不应该是 AI 的专用控制台
群里有人说"终端也不是只用 AI"——这是整场讨论里最被低估的一句话。
herdr 把 Agent 的运行时面板嵌进终端里,短期看是对的:开发者已经在终端里工作,零切换成本。但长期看,把 Agent 可观测性捆在终端仿真器的网格布局里,等于用一个 1970 年代的交互模型去承载 2026 年的协作范式。多窗口分屏解决的是"同时看多个东西",但 Agent 监督真正需要的是:异常高亮、状态变迁时间线、决策回溯、干预点预览——这些是运维监控系统的能力,不是终端的能力。
herdr 是这条路的第一步,但终点应该是一个独立于终端的 Agent 可观测层——它可以嵌入任何编辑器、任何终端、任何 Web 面板。把 Agent 面板做成终端的子功能,和当年把浏览器做成 Emacs 的子功能一样,能做出来,但边界不对。
3. Emacs 内的 TUI 移植是个渲染陷阱,不是架构问题
群里有人在尝试把 herdr 式的多窗格交互移植进 Emacs Buffer,卡在行高抖动和光标漂移上。讨论转向了文本属性标记法(ebox 的旧方案)——用盒模型区域的文本属性来精确还原光标位置。
这里有一个被跳过的工程判断:Emacs 的渲染模型是基于等宽字符网格的,而行高变化、图片插入、可变间距内容都会破坏这个假设。herdr 能流畅跑,是因为它坐在真正的终端仿真器上,由底层 TUI 库处理布局。Emacs 要复刻这个体验,不是在 Elisp 层打补丁的问题——是 Emacs 的 redisplay 引擎从根本上不支持低于 1.0 的行高和像素级增量更新。群里提到"只能从底层 C 去解决",这才是实话。
可继续研究的方向:
Agent 可观测性不应该是一个终端工具的功能,而应该是一个协议——Agent 输出标准化的状态流(当前任务、子任务树、阻塞点、置信度、关键决策日志),任何前端(终端面板、Emacs buffer、Web dashboard、IDE 侧边栏)只负责渲染这个流。herdr 今天做的事情是对的,但它的形态绑定了终端,下一代产品应该先定义这个协议,再考虑渲染。
