外观
Emacs 社区日报 2026-06-17
约 3747 字大约 12 分钟
2026-06-17
自动整理自 Telegram 讨论组,每天更新。内容为 AI 摘要,仅作信息索引与回顾。
Emacs 中文讨论组
好的,各位硬核开发者。群聊已捕获。本次抓取到 281 条消息,数据量充足,讨论内容主要集中在 Emacs 远程开发、终端图形协议冲突、以及 AI 模型的抢购与实战应用上。以下是结构化知识整理。
🎯 核心热点与专题探讨
专题:Emacs 远程开发的“圣战”——Tramp 的困境与未来
这是本周最核心的讨论,几乎贯穿了整个聊天,围绕 Emacs 在远程开发场景下的“怪癖”与“自救”展开。
核心痛点:Emacs 的远程开发体验远不如 VSCode。尤其是在网络延迟较大时,Tramp(Emacs 内置的透明远程文件访问机制)存在严重的性能瓶颈。
- Tramp 的“原罪”:它是一个串行的、无缓存的文件读写机制。每当插件(如 LSP 客户端)打开或关闭文件,数据都需要通过
ssh一次性传输。网络延迟会导致数十次往返,体验非常卡顿。 - 开发者们的“花式”解决方案:
- TUI 派:直接在远程服务器上开终端,跑无头 Emacs。虽然原生,但“打一个字卡一下”的体验让人抓狂。
- Tramp-RPC + LSP-Proxy 派:通过
tramp-rpc引入缓存机制,配合lsp-proxy对 LSP 通信进行 SSH 转发。这是目前支持远程 LSP 的主要方案,但插件生态对tramp的适配仍是问题。 - Eglot 与 lsp-mode 的“远程适配”之争:核心分歧在于 LSP 客户端是否主动处理远程场景。
- Eglot:更强调简单,默认不支持
tramp远程LSP。有eglot-x这样的扩展来弥补,但社区普遍认为其设计哲学与此背离(“eglot 是单纯没处理走 ssh 的场景”)。 - lsp-mode:功能更强大,原生支持通过 SSH 启动远程 LSP server。群友体验是“lsp-mode可以弄,eglot好像没有做”。
- 结论:远程开发场景下,推崇简洁的
eglot显得力不从心,大家更倾向于捏着鼻子用功能完备的lsp-mode,或者直接上lsp-bridge(用外部进程处理 LSP 通信)。一位群友甚至讽刺性地总结:“欢迎来到 lsp-mode 的怀抱”。
- Eglot:更强调简单,默认不支持
- “终极”方案构想:在本地只运行一个“薄”客户端,同步编辑器的 buffer 状态,而在远端运行无头 Emacs。这类似 Neovim 的
msgpack通信模型(传输 UI 变化),或是 VSCode Remote 的“Buffer 同步 + 本地低延迟渲染”逻辑。大家共识是,如果能做到“buffer同步 + 本地处理 LSP”,才能从根本上解决打字延迟与 LSP 功能之间的矛盾。
金句:“我的评价是如果在 LSP 和打字低延迟里面选一个,那我肯定选后者。tags 也不是不能用。” —— 这句话精准地描绘了 Emacs 老手在远程开发中的实用主义选择。
次焦点:Emacs LSP 客户端的“三体演义”——Eglot vs. lsp-mode vs. lsp-bridge
除了远程场景,群友还在本地开发中对三大 LSP 客户端进行了深度吐槽与比较。
- Eglot:从“收回对eglot的一切诋毁,严肃加入eglot”到“eglot也不太行,算了,捏着鼻子用lsp-mode吧”,态度变化极快。问题主要出在:
- 对某些语言服务器(如
vue-language-server改动后)的适配麻烦。 - 与
rust-analyzer(r-a) 的兼容性问题:有人发现r-a nightly的 panic 导致eglot的 code-action 不工作,而lsp-mode却正常。再次印证了lsp-mode的兼容性更强。 - 远程支持薄弱(如上所述)。
- 对某些语言服务器(如
- lsp-mode:虽然被形容为“捏着鼻子用”,但它在复杂场景下的稳健性是公认的。提供万能钩子
lsp-proxy,对jdtls等重型 LSP 的初始化处理更好。 - lsp-bridge:作为新兴力量,有人推荐但讨论不多,其通过外部 Python 进程处理 LSP 的思路被认为在远程场景有潜力。
结论:Emacs 的 LSP 体验依然碎片化,选择哪个取决于具体场景(本地/远程、语言服务器类型)。lsp-mode 是“政治正确”的全面选择,而 eglot 是追求简洁的赌注。
🔑 关键概念与技术解析
- lsp-proxy:一个 Emacs 包,用于将 LSP 通信(通常是本地的 stdio)安全地转发到远程服务器(通过 SSH)。是解决 Emacs 远程 LSP 问题的核心工具之一。
- Mason.el:一个 Emacs 插件,旨在自动安装和管理各种 LSP 服务器、DAP 适配器、Linter 等工具的二进制文件。类似于 Neovim 的
mason.nvim。 - KKP (Kmonad Kinesis Protocol):一个 Emacs 包,用于与 Kmonad(一种键盘映射工具)或 Kinesis(一种人体工学键盘)进行通信,实现更高级的键位控制。它通过监听一个固定端口与外部键盘设备通信。
- Kitty Graphics Protocol:Kitty 终端模拟器的一种扩展协议,允许在终端中直接显示图片、动画或任意图形,而不是文本。它同样需要占用一个监听端口或与文本流进行某种复用。
💎 碎片知识与金句拾遗
- AI与Vibe Coding的“反人性”思考:“最讨厌的两件事,一个是别人不让我 vibe 太自私了,另一个是别人怎么在 vibe 太不负责了。” —— 这是一句非常经典的,关于Vibe Coding伦理困境的吐槽,既讽刺了独占资源的行为,又讽刺了全盘依赖AI的不负责任。
- 字体推荐的热点:讨论集中在中英文编程字体。英文方面,
Monolisa更新到 3.0,新增了更具可读性的Monolisa Text变体,但价格高达 200 刀。Iosevka则是免费、高度可定制的替代品。中文方面,唯一共识是LXGW WenKai。 - GLM套餐的抢购大战:群友形容抢购 GLM-5.2 套餐的体验堪比“当狗”,并且大家已经开始使用
GreaseMonkey脚本来自动化抢购,这本身就是一种赛博朋克行为。有人幽默地建议:“大家都叫AI写抢套餐脚本了”。 - Emacs 终端与 GUI 之争:“我感觉emacs跑在终端里面比打开它的图形界面要更快一些。” —— 这印证了 Emacs 的 TUI(终端用户界面)在某些情况下确实比 GTK/PGTK 等 GUI 前端更轻量、更快。
- Lisp 机器的幽暗残影:一则关于在 M4 Mac 上运行 Interlisp-D/Open Genera 的论坛帖子被提及,引发了大家对上世纪 Lisp Machine 操作系统(如 Intermedia)的怀念。Intermedia 被认为是“超文本”概念的重要先驱,允许在任何文件或图片表面建立双向链接。
🛠️ 值得深入研究的点 (Follow-up)
- tramp-rpc (Emacs TRAMP Remote Procedure Call):一个潜在的关键项目,旨在为
tramp引入缓存机制,从根本上解决远程文件访问的延迟问题。值得跟踪其成熟度。 - lsp-bridge:由 Distel 开发的外部 LSP 客户端实现。其设计哲学与 Emacs 本身解耦,通过一个独立的 Python 进程处理所有 LSP 逻辑,理论上在远程场景下有巨大潜力,且不受 Emacs 主线程的
gc和事件循环卡顿影响。 - Emacs 的 C/S 分离前端探索:Neovim 的
msgpack协议实现了前端与后端的解耦。讨论中有人提到可以基于此思想为 Emacs 重构一个“薄”前端,只负责 UI 渲染,所有逻辑(包括 LSP、文件操作)在远端运行。这是一个充满极客气息、极有潜力的方向,需要评估实现复杂度与可行性。 - Kitty Graphics Protocol 与 Emacs 的整合:如何在 Emacs(尤其是在终端中运行)中优雅地支持图片显示?
kkp与该协议的冲突表明,Emacs 的“竞态”模式与外部图形协议的配合需要更优雅的设计。
Emacs 轻聊讨论组
好的,作为资深技术社区编辑和知识管理专家,我已将今日的群聊记录整理如下。
🎯 核心热点与专题探讨
【专题:输入法的“下一代”演进——从 AI-SKK 到形码的讨论】 今日讨论的核心热点之一围绕着输入法的未来发展展开,尤其聚焦于一个名为
nunomo的项目。该项目的核心理念是通过 AI(尤其是LLM)在用户完成整句输入后,一次性将拼音(罗马字)或字母序列转换为正确的文本。这种方式颠覆了传统的“边输入边选词”模式,引发了深度探讨。- AI-SKK(罗马字转写+LLM)的愿景:成员
nunomo分享的演示显示,用户可盲打日文罗马字,不必在输入过程中切换模式或选词,由AI在最后一步完成转换。支持者认为这能极大提升输入的“心流”体验,让思考不被选词打断,尤其适合日文这种拼音和汉字混合的语言。 - 中文场景的适配性与痛点:群友普遍认为,该模式在中文环境下面临巨大挑战。主要原因是中文的同音字远多于日文,
w juede butaihao(我觉得不太好)这种简拼或全拼,若没有上下文声调或严格规则,AI容易理解错误。有成员指出:“中文如果有声调输入的话,可能就会准确很多”,但声调的输入方式(如强制以数字或符号结尾)又会破坏输入的流畅性,Option键或数字键选音调被评价为“每个字都要以组合键结尾非常烦人”。 - 现有方案的对比与反思:讨论中提到了现有的解决方案,如注音输入法(强制声调)、三拼方案、以及基于形码的日语
ddskk。大多数成员倾向于认为,对于中文,减少选词的心理成本比增加键击更重要,双拼等方案更符合直觉。AI输入法虽然看起来“未来感”十足,但“写完之后还得自己读一遍检查”(除非信任感足够高)是当前最大的实用障碍。
- AI-SKK(罗马字转写+LLM)的愿景:成员
【专题:
rr—— 逆天 Debugger 的技术美学与人文感伤】 群友@fuzy分享了一篇关于 Rust 最著名的时间旅行调试器rr的深度技术解析,引发了关于“传统调试技巧 vs. LLM 时代”的讨论。- 技术内核:
rr通过ptrace记录程序运行期间所有 syscall、signal 的顺序和参数,然后在回放(reproduce)时精确模拟这些序列,从而让程序可以“倒着执行”。其reverse-continue并非物理上的倒流,而是在回放时设置checkpoint,每次“倒车”都是从最近的一个checkpoint快速回放,模拟出时间回溯的效果。 - 痛点场景:对于复杂的大型项目,如 Cilium 的多层次耦合配置,工程师常常会被“某个变量的值不知何时被谁修改”这样的问题逼疯。
rr的 watchpoint(反向执行)正是解决这类“幽灵修改”的核武器。 - 技术之外的人文感伤:
@fuzy在最后表达了淡淡的忧伤:“不过 LLM 解答万物了,也许人类文明不需要 rr 了”。这种观点被保留下来,它反映了一种极客对精湛手工技艺的珍视,以及对技术代际更迭中“工具之死”的感慨。这是纯粹的技术讨论中涌出的极具张力的人文思考。
- 技术内核:
🔑 关键概念与技术解析
- Meow: 一个由
meow-edit维护的 Emacs 编辑模式。它并非独立的 OS 粘贴板管理器,职责专注于文本编辑本身。对于剪贴板管理,需要配置meow-use-clipboard变量或通过系统的剪贴板工具(如p键对应的功能)。 rr(Record and Replay): 一个GDB友好的反向执行调试器。它通过ptrace记录程序执行状态,允许开发者回溯到任意历史断点,查看变量在哪个时刻被修改,解决“变量被魔法修改”的疑难杂症。- AI-SKK (或类似概念): 一种将LLM作为输入法转换引擎的新范式。用户输入朴素的音节(如日语罗马字),在整句输入完毕后,AI一次性根据上下文和语言模型预测出最可能的汉字、假名组合。它省去了传统输入法在打字过程中的选词操作。
💎 碎片知识与金句拾遗
- 汉化组的“吃力不讨好”:天邪汉化组因盗版调查被请喝茶,结果警方发现他们多年来“不曾用汉化盈利过”,警察反问了他们一句极具分量的灵魂拷问:“为什么做这么吃力不讨好的事情”。这表明纯公益、高质量汉化(“不是机翻”、“还要替换图上的文字”、“讲究字体一致”)在现实世界中的艰难处境。
- 地缘政治的“保护费”:针对美国军事行动由阿拉伯国家出资的讨论,群友一针见血地指出:“美国当年就是这样收保护费的啊”。并补充解释了这背后的逻辑不在所谓“义愤”,而在于通过“捏鼻子认了”来避免成为下一个打击目标,而成本最终会通过“提高油价,全球一起承担”来转嫁。
- Emacs 全球社区的多样性:一个支持中日韩的
org-mindmap插件的开发者来自亚美尼亚,群友感叹:“emacs 的用户果然遍布全球”。 - 对
Pi后端的补充建议:成员azz分享了一个关于如何组合前端paseo和后端pi的配置,以减少 token 并仅用于聊天,体现了一种极致“抠” token 的极客精神。 - 关于 Codex 的改进:一位用户反馈最近
Codex的“废话代码量明显减少”,似乎暗示了LLM生成的代码质量正在提升。
🛠️ 值得深入研究的点 (Follow-up)
pi-sessions:liushihao456开发的用于pi后端的插件,支持同时运行多个 session 并在它们之间切换。这解决了传统终端多标签页管理的麻烦,值得关注其实现细节和稳定性。- Nunomo1 的 AI 输入法项目: 源自推文
https://x.com/nunomo1/status/2063877683625500721,该方案展示了将LLM应用于输入法后端的革命性潜力。对于中文输入法而言,这是一个极具前瞻性的研究课题,建议深入探索其实现原理和在中文场景下的适配可能性。
