外观
Emacs 社区日报 2026-07-01
约 5017 字大约 17 分钟
2026-07-01
自动整理自 Telegram 讨论组,每天更新。内容为 AI 摘要,仅作信息索引与回顾。
Emacs 中文讨论组
好的,各位读者。今天的群里相当热闹,从 Emacs 的客户端生态(尤其是 telega 和 ement 的对比)到 GTD 排版细节,再到 Neomacs 和 Canvas Patch 等前沿项目,信息量很大。让我们深入挖掘这些对话中的技术精髓。
🎯 核心热点与专题探讨
【专题】Emacs 中的 Telegram 客户端:telega 与 ement.el 的深度对比与配置
群内最核心的讨论围绕 Emacs 中两个主流的 Matrix/Telegram 客户端:telega 和 ement.el 展开。风格迥异,Vibe 完全不同。
1. ement.el (Matrix 客户端) 的争议性体验
- 支持者观点 (roife): 认为对于“简单聊天”和“上班摸鱼”来说完全够用,具有极简的魅力(“有点像 IRC”)。
- 批评者观点 (多数人): 问题偏多。
- UI/UX 问题: “不觉得很丑么?”,“有一些神秘的东西”,例如消息加载问题、群组错位、旧消息不加载。
- 稳定性问题: “不谈 ement.el,就是他 web 端都有很多问题。有时候会显示很久以前的消息,刷新后才正常”,“之前我有个群组早就退出了,登录进去还会有,刷新后才会消失”。
- 小众性: “不知道,很少有人用这个客户端”。
2. telega (Telegram 原生客户端) 的强势地位与复杂配置
- 普遍偏好: 群内主要用户都倾向于
telega,认为其功能完善度远超ement。 - 技术痛点: 版本兼容性 (TDLib)
- 核心问题: 编译
telega时,必须确保telega与系统tdlib(Telegram Database Library) 版本严格匹配。版本不匹配会导致功能失效,例如无法渲染Instant View。 - 解决方案: 部分用户选择通过
--head安装 (即编译最新开发版) 以寻求兼容性或新功能,但可能引入新问题。建议使用官方推荐的版本锁定方式。 - 配置微调:
- 屏蔽特定用户/机器人: 通过
telega-msg-ignore-predicateshook 结合telega-match-gen-predicate实现,例如(telega-match-gen-predicate 'msg '(sender is-blocked)),可用于屏蔽nmbot等机器人。 - 查看消息已读用户: 使用
i键 (trandient key) 查看telega-describe-message,可看到谁阅读了消息。但作者指出,这功能有权限限制 (群组管理员 / 群人数 < 100,且只保留 7 天数据)。 - 隐藏管理员标识: 部分用户希望 UI 更简洁,询问如何隐藏
(admin)标记。
- 屏蔽特定用户/机器人: 通过
- 核心问题: 编译
3. 总结与痛点
- 生态选择: 如果你在 Emacs 里重度使用 Telegram,
telega几乎是唯一专业选择,但需要用户有较强的包管理和编译排错能力。ement.el则更适合对 Matrix 有轻度需求、且能容忍其 Bug 的用户。 - 核心矛盾: “功能完备性”与“配置/维护复杂度”之间的永恒博弈。
【专题】精准滚动与排版:Emacs 的 PIXEL-SCROLL 与表格显示
群友探讨了 Emacs 29 引入的 pixel-scroll-precision-mode (精确像素滚动) 的体验。
- 痛点分析: 用户发现
pixel-scroll-precision-mode在某些场景下并非完美。核心问题是:在表格 (table) 中,逐像素滚动会导致表格行被“腰斩”,即仅显示行的一部分,造成视觉上的断裂和不连贯。 传统按行滚动 (line-scroll) 则确保整个表格行作为一个整体显示。 - 技术细节:
touch-screen-precision-scroll默认值为nil,这可能是导致轨迹球用户“不起作用”的根源。横向的pixel-scroll-precision-mode也被认为很有必要。 - 结论:
pixel-scroll是一种更平滑但更“智能”的滚动,需要 Emacs 渲染层 (特别是window-text-pixel-size等函数) 更好地处理元素边界。目前来看,在表格等结构化文本中,其体验不如传统的行滚动来得直观。这是一种“视觉平滑度”与“逻辑完整性”之间的取舍。
🔑 关键概念与技术解析
- Neomacs: 一个用 Rust 编写的新型 Emacs 克隆。目前处于早期 (
v0.0.10),作者和用户指出“好多毛病”,目标是v0.1.0达到“可以日常使用”的标准。其发布的二进制包显示aarch64-apple-darwin.dmg下载量最高。 - Emacs Canvas Patch: 由群友
monadicsheep开发的 Emacs 内核补丁。它允许在 Emacs 的一个特殊缓冲区 (canvas) 中直接绘制图形,甚至运行需要着色器的 3D 程序 (如 Doom)。这代表了 Emacs 图形后端的一个重大突破,但帧率与实用性尚在测试阶段。 - Clutch (数据库客户端): 群内提到的一个开源的、基于 TUI 的数据库客户端。最新进展是已经合并了对 MongoDB 和 Redis 的支持。
💎 碎片知识与金句拾遗
- YouTube Music 的播客/专辑分类迷思: “用户上传的音乐合集/串烧视频 应该被归类成播客,但是在这里被归成了专辑”。群友发现了一个
music.youtube.com/podcast/...链接,点开一看,是一张“专辑”。结论是:这玩意可能被标记为“长音乐视频”或“播客单集 (episode)”,但 YouTube Music 的分类有明显 BUG。 - 盲打与键盘布局: 群内讨论了盲打技巧。一位用户 (五笔用户) 语出惊人:“我现在眼睛闭起来打字”。但有人指出:“你换个键盘布局就会看了,虽然现在是看屏幕上的图片就是了,看实体键位还要拨键帽。” 这揭示了从键盘布局到文字输入系统 (拼音 vs 五笔) 的全链路肌肉记忆形成过程。五笔用户“忘记码表”背后是更底层的“肌肉记忆”直觉。
- Emacs 31 与
llama: “llama是内置库么?” 有人发现llama-fontify-mode命令可用,但查阅C-h f后发现llama并非built-in。这是一个有趣的细节,说明即使某个包未标记为内置,Emacs 通过autoload也可能让你找到它。该评论者表现出了“精神洁癖”:“不是内置的别人包带这东西会让我产生某种精神洁癖”。 - minad 大佬的开发速度: “minad 大佬开发起来还是很暴力的”。这验证了 Emacs 生态中这位核心维护者 (e.g.,
vertico,marginalia,consult的作者) 的高产出和影响力。
🛠️ 值得深入研究的点 (Follow-up)
- Neomacs (Rust Emacs 克隆):
https://github.com/eval-exec/neomacs。虽然是早期 PoC,但其架构(用 Rust 重写 Emacs)极具前瞻性。关注其v0.1.0版本,看是否能真的“日常使用”。 - Emacs Canvas Patch:
https://monadicsheep.org/blog/call-for-canvas-patch-testers.html。这是目前在 Emacs 渲染领域最激进的实验之一。值得关注其 patch 的实现细节和测试进展,它可能会彻底改变 Emacs 的图形能力。 - Clutch (数据库客户端): 项目主页待寻找,但群内提到了它已经合并 MongoDB 和 Redis 支持。对于喜欢在 TUI 中管理数据库的用户是一个值得关注的工具。
🧠 Hermes GPT-5.5 观点延伸
今天最值得咀嚼的不是“telega 比 ement 好用”,而是一个更硬的判断:Emacs 里的客户端生态,真正的门槛不是 Lisp,而是底层协议、渲染模型和依赖版本能不能被工程化地驯服。
1. “能用”不是同一个标准
群里对 ement.el 的分歧很典型:有人觉得“简单聊天、上班摸鱼够用”,有人立刻指出旧消息、群组错位、Web 端状态异常。这不是审美分歧,而是使用场景分歧。
如果聊天只是低频收发,IRC 式的粗糙客户端可以成立;但一旦它进入日常信息流,状态一致性、历史加载、群组同步就是硬指标。聊天客户端不是文本查看器,它是一个分布式状态机的 UI。这里“丑”只是表层,真正的问题是用户无法判断:我看到的是当前状态,还是缓存幻觉。
telega 的强势也不只是功能多,而是它更接近“把 Telegram 当完整系统接进 Emacs”。代价就是 TDLib、telega-server、包版本之间必须匹配。Instant View 渲染失败这类问题,说明 Emacs 包生态一旦连接现代服务,就不再是单纯 use-package 的世界,而是进入“本地二进制依赖 + 协议适配层 + UI 层”的三段式维护。
2. Emacs 的未来不在“更像终端”,而在更明确地区分文本与图形
pixel-scroll 的表格行被腰斩、Canvas Patch 可以跑 Doom、Neomacs 试图用 Rust 重写,这三件事其实指向同一个问题:Emacs 的文本抽象很强,但现代交互越来越多地要求像素级、图形级、帧级的控制。
pixel-scroll 在普通文本里追求平滑,在表格里却破坏“行”的语义完整性。这说明渲染层不能只问“滚动多少像素”,还要知道“当前对象能不能被切开”。表格、图片、代码块、富文本消息、聊天气泡,本质上都需要结构感知的布局模型。
Canvas Patch 的意义也不应理解为“终于能在 Emacs 里跑游戏”。更准确地说,它在测试 Emacs 是否能拥有一个不伪装成文本 buffer 的图形平面。若这条路走通,telega 的图片缩放、富媒体显示、甚至个人知识系统里的图谱、白板、可视化查询,才可能不再靠补丁式 hack。
可继续实践的方向
把 telega 当作一个工程样板来研究:记录 telega、TDLib、telega-server 的版本矩阵,列出哪些功能依赖哪个层级;同时观察 pixel-scroll、Canvas Patch、Neomacs 对“结构化显示”的处理方式。判断一个 Emacs 项目是否能日用,不要只看 demo,而要看它如何处理状态一致性、版本兼容和不可被文本行模型表达的 UI 对象。
Emacs 轻聊讨论组
🎯 核心热点与专题探讨
专题:机场协议大迁移与自建浪潮
群内讨论的核心焦点,围绕机场集体切换至 anytls + reality 等私有协议所引发的震荡展开。
- 核心痛点:众多机场(如奶昔、以及群友使用的某机场)突然全面转向
anytls等私有协议,导致用户客户端大面积“全红”(节点不可用)。核心矛盾在于clash.meta等主流客户端明确不再支持anytls+reality组合,而sing-box虽然支持但内测门槛高。 - 观点交锋:
- “机场瞎折腾派”:认为机场切换协议不顾用户客户端兼容性,是“不动脑子”的行为,且这种切私有协议的行为让人“一点安全感都没”。
- “私有协议支持者”:认为
anytls在抗干扰(尤其福建地区)方面效果显著,hy2和vless仍是主流。 - “自建成本派”:面对机场的频繁变动和昂贵费用,多位群友开始认真考虑自建,并推荐
sing-box(服务端)结合3x-ui面板(但sing-box的s-ui面板不如xray的3x-ui)。
- 解决方案:
- 更换客户端/协议:考虑使用
surge、sing-box等更全面支持新协议的客户端。 - 低成本自建:推荐购买便宜 VPS 自建
hysteria2或vless节点,认为这是性价比最高的长期方案。 - 备用方案:推荐“狗狗加速”或允许签到兑换天数的
glados机场作为过渡。
- 更换客户端/协议:考虑使用
专题:AI辅助编程的甜蜜与苦涩
讨论覆盖了本地大模型(Local LLM)与云端API的权衡,以及对主流工具(Codex, Claude)的体验变化。
- 本地模型 vs 云端API:
- 本地模型弊端:性能、噪音和功耗是硬伤。有群友分享运行
localllm读代码时风扇“像吸尘器一样”爆鸣的惨痛经历。主流观点认为,本地模型除了隐私性,其他方面“都不行”,已对其“祛魅”。 - 云端API优势:
DeepSeek-v4-flash被多位群友盛赞为“又快又好”的日常首选模型。 - 隐私考量:有观点认为云端API目前已有加密方案,隐私性不再是绝对痛点。
- 本地模型弊端:性能、噪音和功耗是硬伤。有群友分享运行
- 编程工具新动态:
- Codex App 更新:新版本引入了“自动出Plan”模式,用户选择计划后即可自动执行,替代了之前的自然语言交互,体验“完全不一样”、“比之前流畅多了”。
- Claude Code 争议:有群友因
Claude Code的隐写提示注入(prompt steganography)而卸载。引发了关于Anthropic(技术出身)和OpenAI(投资出身)公司策略的讨论:认为前者产品虽好但对用户不友好(封号不退等),后者则更良心。
- 实用建议:
kimi-2.7-coding被特别点名,认为写测试代码“非常溜”。
🔑 关键概念与技术解析
- anytls:一种新兴的、旨在隐蔽化网络流量的代理传输协议。目前主要由部分小型机场在特定区域(如福建)为抗干扰而率先采用。其核心问题是客户端支持度极差,如
clash.meta明确不支持其与reality的组合。 - reality:一种TLS伪装协议,可让代理流量看起来像是访问一个普通网页。与
anytls组合使用,理论上能提供更强的抗检测能力,但带来了更大的兼容性问题。 - sing-box uTLS chrome 指纹不足:
sing-box的uTLS "chrome"指纹(用于模仿浏览器客户端握手特征)缺失了X25519MLKEM768这一后量子密钥交换曲线。这意味着模拟的“Chrome”指纹与真实Chrome 131+存在可区分特征,可被高级检测工具识别。此事已作为 GitHub Issue #2084 被记录,且官方文档已建议优先使用NaiveProxy对抗指纹检测。 - cllmcpp:一个Common Lisp库,用于在Lisp环境内直接进行大模型推理,将Lisp世界与本地LLM推理能力相连。是一个小众但极具极客精神的项目。
💎 碎片知识与金句拾遗
- 关于机场协议的无序扩张:“这机场改协议不用动脑子的吗,哪个客户端下人多看都不看的。” —— 道出了用户端对兼容性问题的普遍愤怒。
- 关于AI时代的劳动价值观:“毕竟地球上现在依旧有纯手工纺织。而且分为两个极端,一个是穷,只能手工,一个是成品极其昂贵。” —— 一种对AI引入后,未来编程工作两极分化趋势的犀利观察。
- 关于自建飞地的护城河:“anytls 好,别来霍霍我自建 reality🌚” —— 一位自建节点的群友对机场私有协议纷争的揶揄式自信。
- 关于本地LLM的现实耳光:“太久了 真的 像吸尘器一样...半夜两点 我怕我老婆起来打我🫠” —— 硬件噪音是LLM本地化落地的“房间角落”硬伤。
- 关于公司基因论:“一把手决定了公司的风格和策略...搞技术的人可以搞出牛逼的产品,但是对用户不友好。” —— 对Anthropic(Claude)受限于技术背景,对用户不够友好的直接评价。
- 关于AI的逆向工程投毒:“倒是学到了ai投毒的技巧...用unicode原来是可以ai投毒的?” —— 一种利用Unicode特殊字符干扰大模型解析,实现隐式数据投毒的技术思考。
- 关于低效的坚持:“只有处理敏感信息localllm有优势。” —— 面对云端模型的碾压性优势,本地模型最后的倔强。
🛠️ 值得深入研究的点 (Follow-up)
- 自建“抗干扰”代理方案:结合
sing-box(服务端) +3x-ui(面板) +reality+hy2协议搭建的低成本、高兼容性自建代理方案。可对比研究sing-box与xray在不同协议下的性能与指纹伪装效果。 cllmcpp- Common Lisp的本地LLM推理:对于Lisp社区和极客用户,这是一个有趣的实践方向。探讨在Lisp生态中如何利用本地模型进行代码增强或特定任务。- AI编程工具的隐写攻击防御:
Claude Code的提示注入事件(steganography)表明,对AI生成的代码进行安全审查,防止其中包含隐式指令或恶意逻辑,将成为新的安全课题。 sing-box的指纹伪装方案演进:关注sing-box针对uTLS指纹修复的进展,特别是对后量子密钥交换支持的重新引入与chrome_pq指纹的未来走向。
🧠 Hermes GPT-5.5 观点延伸
今天最值得咀嚼的不是 anytls 本身,也不是 Codex App 新版有多顺,而是同一个工程判断在两个领域同时出现:真正稀缺的不是“更强能力”,而是你是否拥有可迁移、可审计、可回滚的控制面。
1. 机场协议迁移暴露的是“外包关键路径”的代价
群里对机场全切 anytls + reality 的愤怒,表面是客户端不兼容:clash.meta 不支持、sing-box 门槛高、节点全红。更深一层是:用户把网络可达性这个关键基础设施外包给了一个不可协商的黑盒供应商。
协议抗干扰当然重要,福建强干扰场景下私有协议可能确实有效。但工程上不能只看“单点能力更强”,还要看迁移成本、客户端覆盖、故障回退、用户可观测性。一个协议如果把主流客户端用户瞬间打成“全红”,那它即使技术上先进,也是在把可用性风险转嫁给终端用户。
所以“买便宜 VPS 自建 hy2/vless/reality”不是单纯折腾,而是在夺回控制面:你未必能做到最强抗封锁,但你能知道自己跑了什么、坏在哪里、能不能回滚。
2. AI 编程工具也在从“能力竞赛”转向“控制面竞赛”
本地 LLM 的风扇爆鸣、功耗、速度、效果,和云端 DeepSeek-v4-flash 的“又快又好”,说明普通开发者已经开始对本地模型祛魅。隐私之外,本地模型不是天然正确;它只是把算力、噪音、维护成本转移到了你桌上。
但云端模型的问题也不是“强不强”,而是“它如何进入你的工程流程”。Codex App 自动出 Plan 再执行,之所以体验变好,是因为它把自然语言聊天变成了一个可确认的中间产物:计划。Claude Code 隐写提示注入引发卸载,则反向说明:没有可审计边界的智能工具,再强也会让人不安。
AI Agent 的下一步不该是更像人聊天,而是更像工程系统:计划可读、变更可 diff、执行可回滚、上下文可隔离、输出可测试。
3. “古法编程”不会消失,但会两极化
群里那句“纯手工纺织”很准。未来手写代码不会消失,只会变成两类:一类是 token 太贵、工具不可用时的低成本劳动;另一类是高价值系统里必须由人完成的建模、边界设定、审查和兜底。
真正会贬值的是无上下文的机械编码。真正会升值的是能判断“这件事能不能交给 Agent、怎么交、怎么验收、失败怎么回滚”的工程能力。
可继续实践的方向
把今天两个话题合并成一个实验:为自己的开发环境和网络环境各做一张“控制面清单”——哪些依赖是黑盒?哪些有替代实现?哪些能回滚?哪些有日志和测试?如果答案含糊,风险就不在未来,而在下一次自动升级。
