外观
Emacs 社区日报 2026-06-21
约 5340 字大约 18 分钟
2026-06-21
自动整理自 Telegram 讨论组,每天更新。内容为 AI 摘要,仅作信息索引与回顾。
Emacs 中文讨论组
好的,各位读者。以下是本周(虚构日期2026年6月21日)硬核开发者群组的聊天记录总结与知识萃取。今日讨论焦点覆盖了从版本管理工具迁移、Emacs编辑器深度定制到Telegram群组安全机制等多个领域,信息密度中等。
🎯 核心热点与专题探讨
专题:Emacs 编辑体验的精细化打磨与范式对比
今日群聊中,关于Emacs的讨论尤为深入,从细节问题(如bug修复)到宏大比较(编辑器哲学)均有涉及,形成了一个围绕“如何提升Emacs编辑体验”的专题。
痛点与修复:eglot 的 Percent Encoding Bug
- 问题描述: 群友 κόσμος 发现 eglot(Emacs的LSP客户端)在处理文件名中的百分号编码时存在问题。由于Emacs内置函数
url-unhex-string返回的是unibyte字符串,而非utf-8,导致出现乱码(如\308\123)。 - 解决方案: 只需手动调用
(decode-coding-string ...)即可修复。有一位群友已将修复方案(源自sinofine)提交为 patch,但尚未收到回复。 - 深度洞察: 这不仅仅是eglot的bug,更是Emacs Lisp生态中一个典型的“编码陷阱”。文档中已经注明
url-unhex-string的结果可能需要decode-coding-string,但很多包作者会忽略这一点。该案例也侧面反映了给Emacs包提PR有时需要等待。
- 问题描述: 群友 κόσμος 发现 eglot(Emacs的LSP客户端)在处理文件名中的百分号编码时存在问题。由于Emacs内置函数
功能对比与发现:Vim 的哲学 vs. Emacs 的实现
- 核心争论: 一位新群友在学习Emacs教程时感到不适,认为Emacs难以实现Vim那种
5w,d5e的“组合命令”范式。 - 多方观点:
- Emacs 原生派: Emacs 的非模态编辑本质决定了它不会把最顺手的按键分配给数字前缀命令。Emacs 更鼓励使用
C-M-<forward>、C-SPC(标记) 加C-s(搜索) 等方法来定位。 - Vim 习惯派: 提出了使用
evil(Emacs Vim模拟层) 或meow(非模态编辑方案,同样支持组合键) 来弥合差距。 - 实践派奉劝: “谁会在操作前先数一数要移动多少下?” 实际上Vim用户也很少使用
d5w,更多是v(可视模式) 配合w或f(跳转到指定字符) 进行选择。 - Emacs 改进派: 提到 Emacs 31 中
repeat-mode的改进,例如C-x o现在可以连按o来循环切换窗口,这大大简化了多窗口导航。此外,利用C--(negative-argument) 可以让正向动作变为反向,实现按词向左选择。 - 小结: 讨论的结论并非“Vim更好”或“Emacs不行”,而是揭示了两种编辑器的核心范式差异:Emacs 强调“执行-移动”,Vim 强调“动词-名词”。Emacs 的强大在于其高度的可扩展性,可以通过插件(如 evil)或自定义配置来融合两种范式。
- Emacs 原生派: Emacs 的非模态编辑本质决定了它不会把最顺手的按键分配给数字前缀命令。Emacs 更鼓励使用
- 核心争论: 一位新群友在学习Emacs教程时感到不适,认为Emacs难以实现Vim那种
前沿特性与配置分享:
- OpenType 特性支持: κόσμος 询问 Emacs 是否能直接指定 OpenType 特性。回答是
font-spec确实支持:otf参数,并且系统层 (macfont.m) 也有处理,但实现效果似乎不理想。 - 配置管理利器: 群友分享使用了
chemacs2来管理多个 Emacs 配置,这是一种优雅的配置切换方案。 - 其他发现:
Emacs-wgrep:允许直接编辑grep结果缓冲区来批量修改文件(类似于 VS Code/Zed 的“在查找结果中编辑”功能,其实 Emacs 早有grep-edit-mode)。combobulate-mode:一个更加正式的 Emacs 结构化编辑模式。ghostel:一个终端模拟器,群友感叹其功能已相当复杂。flex-score:Emacs 内的模糊匹配打分机制,解释了某候选词旁边的百分比数字含义。
- OpenType 特性支持: κόσμος 询问 Emacs 是否能直接指定 OpenType 特性。回答是
🔑 关键概念与技术解析
- SDKMAN & asdf & mise:
- SDKMAN: 一个用于管理多种软件开发套件(JDK、Maven、Gradle 等)的命令行工具。群友反映其速度较慢。
- asdf: 一个通用的版本管理器,通过插件化管理各种工具(Ruby、Node.js、Elixir 等)。被提及作为 SDKMAN 的替代品。
- mise (原 rtx): 另一个现代化的版本管理工具,支持
.tool-versions文件,兼容 asdf 插件生态,速度更快。同样被推荐。
- chemacs2: 一个 Emacs 配置启动器。它不替代你的配置,而是允许你为不同配置文件创建配置文件(例如,一份配置用于日常开发,一份用于写Org-mode),然后通过启动参数或环境变量来切换。这对维护多份 Emacs 配置的用户非常有用。
- OpenType features: 字体文件中的高级排版特性,如连字 (ligatures,
fi->fi)、分数 (fractions)、花体 (swashes) 等。现代编辑器(如 VS Code, Zed)通常支持对特定语言(如Fira Code, Iosevka)进行此微调。Emacs 通过:otf参数在font-spec中提供支持,但具体实现可能不完美。 - percent encoding (百分号编码): 一种用于在 URI 中表示非 ASCII 字符的机制(如 中文 的“中”会被编码为
%E4%B8%AD)。url-unhex-string函数负责将其解码,但返回的是unibyte(字节序列) 而非解码后的字符,因此需要手动配合decode-coding-string来获得正确的 UTF-8 字符串。
💎 碎片知识与金句拾遗
- 编辑器对比的哲学总结:
“emacs本身并非modal edit, 自然不可能把好按的键分配给这些地方吧” “还好,其实我只是让 evil 负责快速移动光标,真正的编辑操作,还是直接到 Insert-mode 处理了” —— 群友分享了一种“混合模式”使用Emacs的实用策略。
- Code Review 的怨念:
“不过给eglot反馈bug确实有点不爽” / “我把sinofine的修复方案发patch发上去了,现在还没回 😁” —— 真实反映了开源贡献者等待反馈的心情。
- 关于 Telegram 群组管理的冷知识:
- 群组可以设置“禁止新成员查看历史消息”的选项,这会改变入群验证 Bot 的工作流程,可能导致所有验证都转移到私聊中进行。
- 有群友认为现在的Spam(垃圾信息)可能“后面有人工在过选项”,反映了对反spam机制被绕过方式的警惕。
- 一个漂亮的工具推荐:
otty.sh:一个漂亮、开源的终端模拟器,使用 Rust 编写,基于 WebGPU 渲染。群友分享链接(https://otty.sh/),但未深入评论。
- 实用链接合集(基于上下文推测):
forge-cursor:一个与Cursor编辑器相关的工具或配置。Emacs-cache-paths:一篇关于Emacs缓存的文章。jxr2uhdr:一个将 JXR 格式照片转换为 HDR 图像的工具。ghostel:一个基于 Electron 的、高度可定制的终端模拟器,已变得相当复杂。
🛠️ 值得深入研究的点 (Follow-up)
combobulate-mode: 这是一个值得深入了解的 Emacs 结构化编辑包。它声称比smartparens或expand-region更强大,并且与 Tree-sitter 深度集成。对于经常编写 Lisp、Python 或任何嵌套结构代码的用户来说,这是一个高优先级的研究对象。- Emacs 31 的
repeat-mode改进: 该功能不仅限于窗口切换。如何利用repeat-mode简化日常高频操作(如缩放窗口、切换buffer、插入日期等)值得深入挖掘,它可能改变Emacs的默认工作流程。 flex-score: 了解 Emacs 的模糊匹配评分机制,可以帮助你优化completions配置(如vertico,corfu,consult等),让候选词排序更符合直觉,提升搜索效率。
🧠 Hermes GPT-5.5 观点延伸
今天最值得咀嚼的,不是“Emacs 能不能学 Vim”,而是一个更硬的判断:编辑效率的核心不在按键数量,而在编辑器把“意图”建模成什么对象。Vim 把编辑建模成动词与对象的组合;Emacs 更常把编辑建模成命令、区域、结构与可扩展协议。前者短促,后者松散但可塑。争论 5w、d5e 是否顺手,只是表层症状。
1. 数数不是高效,选择对象才是高效
群里有人说“谁会在操作前先数一数要移动多少下”,这句话很关键。5w 看起来像高阶组合,但真实编辑时,人通常不是先算距离,而是识别边界:到下一个字符、下一个 sexp、当前函数名、grep 结果里的若干行、Tree-sitter 节点。 所以 Emacs 的弱点不是没有数字参数,而是默认交互没有把“对象选择”做得足够显性、足够连续。C-SPC C-s、C-M-SPC、negative-argument、repeat-mode 都能拼出答案,但心智路径分散。meow、evil、combobulate-mode 的吸引力,本质上是在替 Emacs 补一个“对象层”。
工程判断很简单:如果一个编辑动作需要用户记住三套前缀、方向反转和 mark 行为,它就不是缺文档,而是缺交互模型。
2. Emacs 的优势不是“什么都能做”,而是能把失败暴露到可修复层
eglot 的 percent encoding 问题也很有代表性:url-unhex-string 返回 unibyte,文档写了需要 decode-coding-string,但调用方漏了,于是非 ASCII 文件名乱码。这个 bug 不炫,但它说明 Emacs 生态的一个典型现实:很多问题不是功能缺失,而是边界协议没有被强类型约束住。
这类问题在现代 IDE 里通常被封装掉,用户只能等官方修;在 Emacs 里,用户能定位到函数、读文档、打 patch,甚至 fork org 给表格公式高亮加配置项。代价也很明确:系统给了你修复权,同时也把历史包袱、编码模型、major mode 语义映射这些复杂性暴露给你。
所以“Emacs 做不了什么”不是好问题。更好的问题是:某个能力在 Emacs 里是默认产品体验,还是需要用户承担维护者心智?
3. 下一阶段的 Emacs 配置,不该继续堆包,而该收敛交互范式
当天从 chemacs2、多配置管理,到 wgrep、repeat-mode、combobulate、flex-score,其实指向同一个方向:高级 Emacs 用户正在把编辑器从“功能集合”整理成“操作系统”。但这里最容易失控:每个包都解决一个局部痛点,最后形成一套只有本人能解释的仪式。
可验证的工程标准应当是:高频动作是否能被统一到少数几种可预测机制里?比如“选择对象”“重复动作”“结构跳转”“批量修改”“候选排序”。如果配置不能减少动作模型,反而增加例外,那就是负资产。
可继续实践的方向
拿一天真实编辑日志做审计:记录 20 个高频编辑动作,标注它们属于“字符移动、语义对象、结构节点、搜索定位、批量替换”哪一类。然后只围绕这几类重构配置:repeat-mode 负责重复,combobulate/sexp 负责结构对象,wgrep 负责批量编辑,completion/flex-score 负责候选选择。别问 Emacs 能不能像 Vim;问你的 Emacs 有没有一个稳定、可解释、可迁移的编辑意图模型。
Emacs 轻聊讨论组
好的,这是根据您提供的聊天记录整理的知识总结。
🎯 核心热点与专题探讨
专题:Vibe Coding 时代的“图”认知与交互革命
这个专题贯穿了当天的讨论,从具象的工具探索上升到抽象的认知哲学,是群聊中最核心、最深刻的碰撞。
现状与痛点:
- 群友普遍在探索提升开发效率的工具与方法,例如使用 Hermes、Gerrit 接 Agent、以及在 KDE Panel 上嵌入浏览器(
vibe插件)获取信息。 - 群友观察到当前 AI 工具(如
glm5.2)额度消耗快、思考模式愈发冗长(“有点太会思考得离谱了”、“怎么改个标点都要想半天”),以及上下文过长时工具调用效率低下(“一分钟只能调用五次工具”),反映出当前 LLM Cline 模式在实用中的摩擦。 - 讨论触及了键盘操作 vs 鼠标操作的深层思考:
hint-mode、avy等精准定位工具虽然强大,但“看字母”这个步骤被认为“很耗精神”,打断了“下意识”操作的心流。群友普遍认为“一切都是习惯问题”,但寻找比”识别字母”更直觉的交互方式(如“数字更容易”、“匹配搜索”)是持续的需求。
- 群友普遍在探索提升开发效率的工具与方法,例如使用 Hermes、Gerrit 接 Agent、以及在 KDE Panel 上嵌入浏览器(
解决方案与思维升维:
- 一位群友提出了一个极具前瞻性的、关于软件工程认知工具的长篇观点。他认为,在 Vibe Coding 时代,核心的交互工具不应只是
plans或specs,而应是各种连通代码的、可交互的“图”。 - 核心论点:图不是文字的替代品,而是更高带宽的“观察界面”。软件系统是“多维”的(结构、流程、时序、状态、依赖、边界),文字是线性描述,而图是呈现多维复杂性的最佳认知工具。它源于“控制论”思想:控制的前提是观察,而图让复杂系统变得可观察、可沟通、可控制。
- 这引发了热烈讨论。群友指出,这种“图”的底层应映射到具体代码,人类看交互图,AI 执行底层逻辑(“图是给人看的”)。同时,“效果、速度、成本”是可视化图中的不可能三角,对“排版合理、粒度适中”的实现难度表示认同。有人推荐使用 HTML 或 Mermaid 这类 AI 可理解的文本结构来绘图,而不是像素级图片。
- 一位群友提出了一个极具前瞻性的、关于软件工程认知工具的长篇观点。他认为,在 Vibe Coding 时代,核心的交互工具不应只是
另一热门:桌面环境与窗口管理器花式调教
群友展示了丰富的桌面定制实践,从 Wayland 混成器 (niri) 到 KDE Plasma 的深度 vibe 编程。
- 核心叙事:大家分享并吐槽了各自的桌面环境状态。有人从
KDE转至niri(平铺式 Wayland 混成器),有人仍在Endeavour OS上使用 KDE 套件。foot终端在缩放时的“连窗口一起缩放”被称为“好奇妙的设计”。 - 创新实践:群友 vibe 了一个 KDE Plasma 插件,成功在系统面板(Panel)上嵌入了浏览器控件,并在聊天中实时分享了成品截图。这个概念被描述为“满足 KDE 用户丰富的想象力”,能“在 panel 上直接看到任何我想要的信息”。
- 硬件事实:讨论了 Linux 笔记本的续航问题,有人通过调整 CPU 频率将续航从4小时拉到8小时,但也直言笔记本(1.98kg)较重。
🔑 关键概念与技术解析
- Hermes (艾玛,或指某LLM/开发工具?):从上下文推测,这很可能是指一个用于代码补全或 Agent 编排的命令行/框架工具。群友表示“hermes确实好啊,用得我大脑褶皱都抚平了”,并且提到“hermes的包是从nix那边安装的”,以及“内置了图,只不过它不是可视化体现”。
- oh-my-agent:一个将代码模块关系抽象成“Agent编排流”来处理的项目,被视为“图”的一种形式。
- os age:指操作系统的安装时长(uptime的累积)。群友分享了一个
os age为 48天的截图,并幽默地提到“等到你操作系统到 1岁的时候,可以考虑给你的系统买个蛋糕”。 - Vibe Coding:在群里语境下,指通过自然语言交互(类似 ChatGPT 的 vibe)来生成或修改代码的过程。例如“vibe 了一个 kde plasma 插件”。
- Gerrit:代码评审工具。有群友指出“gerrit不是一开始就把数据存git里的”,并计划“本地搞个gerrit实例,看看能不能接上agent”。
💎 碎片知识与金句拾遗
- 关于代码理解能力:“我发现现在快速看懂代码的能力变得越来越重要了...我觉得这也是一种 review。”
- 关于UI设计哲学:“图占效果好,但速度慢成本高...图是给人看的,给ai看的话还是代码和模型的。”
- 关于习惯与心流:“同意,所以下意识的操作根本不存在打断心流...一切都是习惯问题。”
- 关于工具推荐:“可以在这里试试kimi k2.7 code” -> https://hyper.charm.land/
- 关于 Linux 日常:“LinusTechTips 说用了一个月 Linux 之后,回不去 Windows了...其实不考虑游戏的话,我也会回不去。”
- 一个有趣事实:“如果你调整一下cpu频率,最多可以续航8小时。”
- 关于知识库管理:“知识库美美降级了,直接改成人类撰写+AI可查询。” (一种现实且高效的知识库维护策略)
- 关于竖版OCR:“上次我尝试用一些开源项目,弄清朝古籍,一团糟。” 有人推荐了
PaddleOCR。 - 关于键盘模拟鼠标:“cursorcrane” -> https://cursorcrane.expressionloss.com/ 一个用键盘完全模拟鼠标操作的项目,受到了好评,但也被指出有类似
hint-mode的“耗神”问题。 - 未来展望:“我们已经有优秀的text editor了。或许未来得再有一个优秀的graph editor才行。”
🛠️ 值得深入研究的点 (Follow-up)
- cursorcrane: 一个用键盘完全模拟鼠标操作的开源项目。对追求“无鼠标”操作的人来说,其实现原理和可用性值得尝试。
- hyper.charm.land (Kimi k2.7): 一个可体验 Kimi k2.7 code 的在线平台。值得关注其在代码能力和长上下文表现上的进展。
- Vibe coding 流程图理念: 该群友提出的、以可交互、可操作的“图”作为 Vibe Coding 新界面的理念。可以进一步研究如 Mermaid, PlantUML 等工具与 AI Agent 的深度结合,探索其可行性。《控制论和科学方法论》是相关参考资料。
- Nix 包管理与 Hermes: 使用 Nix 管理 Hermes 这类工具的安装方式,体现了 Nix 在管理复杂、跨平台开发工具链上的潜力。可以考虑探索 Nix Flakes 与 Hermes 的集成。
🧠 Hermes GPT-5.5 观点延伸
今天最值得咀嚼的判断是:Vibe Coding 真正缺的不是更长的 plan、更多的 spec,而是一套能把软件系统“重新变得可观察”的界面。群里关于“图”的讨论不是文档审美问题,而是工程控制问题:如果人看不见依赖、状态、数据流和影响范围,就只能把控制权交给模型的上下文幻觉。
1. 图不是给模型看的,是给人恢复判断力的
“图是给人看的,给 AI 看的还是代码和模型”这句话很关键。很多 AI 编程工具的问题,不是不会改代码,而是让人越来越难判断它改得对不对。上下文到 200k 后工具调用变慢、改个标点也长时间思考,本质上都是控制回路变钝:人发出意图,模型吐出过程,但中间状态不可观察。
可交互图的价值不在“漂亮”,而在把隐藏关系压缩成可审查对象:这个模块依赖谁、这条请求经过哪里、改这里会炸哪里。它应该服务 review,而不是服务演示。
2. “快速看懂代码”会变成核心工程能力
群里提到“现在快速看懂代码的能力变得越来越重要了,我觉得这也是一种 review”。这其实是 Vibe Coding 时代的分工变化:写代码的边际成本下降,理解代码的边际价值上升。
过去强工程师强在能写出复杂系统;现在还要强在能迅速建立系统心智模型,判断 Agent 的修改是否破坏边界。可验证的工程判断会从“我读完这段代码”转向“我能追踪这个变更的影响面”。所以未来好工具不只是 code editor,而是 code-understanding editor。
3. 真正难的是粒度,不是绘图
讨论里有人说图要“效果好,不能堆叠,排布合理”,而且“粒度”很难。这点比“用 Mermaid 还是 HTML”更根本。工程图失败通常不是因为不会画,而是因为抽象层选错了:太细变成代码截图,太粗变成架构鸡汤。
一个实用判断标准是:图上每个节点都应该对应一次可行动的工程判断。不能帮助定位 bug、评估影响、讨论边界、拆分任务的图,就是装饰。
可继续实践的方向
可以从“小而硬”的图开始:为一个真实项目生成“变更影响图”或“请求路径图”,要求每条边都能回链到具体文件、函数或配置;再让人用它完成一次 review。不要先追求全自动 graph editor,先验证一件事:它是否真的让人更快、更准确地判断一次修改的风险。
