Emacsen 家族、Emacs 的设计以及 Lisp 的重要性(2023)
一个新的类 Emacs 编辑器 Lem(用 Common Lisp 构建)因其速度、基于 SDL2 的界面和内置 LSP 支持而引发关注,同时也暴露出缺少 Org mode、接近 Magit 级别的 Git 工具以及庞大扩展生态等 Emacs 经典要素的问题。评论者围绕编辑器场景中的宽松许可(MIT)与 copyleft(GPL)展开讨论,比较个人自由与社区自由,并质疑许可证在长期内究竟能在多大程度上保护用户权利。讨论还扩展到长期存在的 Emacs/Vim 与 VS Code 张力,强调 Emacs 基于 Lisp 的可扩展性以及“编辑器即平台”的理念,仍是许多用户在主流趋势转向 VS Code 之后依然坚持使用它的主要原因。
Lem:类 Emacs 的 Common Lisp 编辑器
- Lem 被强调为一款基于 Common Lisp 的 Emacs 风格编辑器,并附有其网站和仓库链接。
- 它同时拥有 SDL2(图形界面)和 ncurses(终端)UI;SDL2 被描述为“有趣”且响应迅速,启动也很快(约 1 秒)。
- Nix/NixOS 用户指出存在一个 flake,但它落后于当前的 Lem 版本。
许可:GPL vs MIT 与软件自由
- 有些人对 Lem 不是 GPL 感到失望;另一些人则质疑为什么这会“令人难过”。
- 一派认为 GPL 维护的是 社区 自由(防止改进被专有化封闭)。
- 另一派更偏好宽松许可证(MIT),认为它最大化了 个人 自由,并主张 GPL 更具限制性,且在实践中更难执行。
- 讨论还涉及 copyleft 支持者最终是否想废除软件版权,以及这一目标是否自洽。
- 实际层面的话题包括:GPL 的法律可执行性、企业对 copyleft 的风险规避,以及对使用 MIT 代码“免费为公司打工”的担忧。
Emacs、Vim、VSCode 与“编辑器战争”
- 有人声称 Vim 和 Emacs 在流行度上“输给了” VSCode;也有人回应说,类似说法曾经同样针对 Sublime、Atom、TextMate 等。
- 一些人认为 Emacs 和 Vim 并不追求市场统治地位,而是拥有持久的社区。
- 一种观点是:无论是 Emacs 还是 Vim,深入掌握任何强大的编辑器都比追逐每一个新潮流更重要。
Emacs 作为平台,而不只是编辑器
- Emacs 被描述为一个通用平台(PIM、邮件、IRC、Mastodon 客户端、网页抓取、电子表格、文学编程、PDF 注释等),而不仅仅是代码编辑器。
- VSCode 被视为很强的 IDE,尤其配合 LSP 时表现出色,但可塑性较弱:Emacs 允许用户将任意 Lisp 作为配置来执行,并在运行中的进程里直接操作。
- 也有人强调 Emacs 在非编程工作流中的价值(org-mode、Magit、任务管理等),即便在某些编程人体工学方面不如 VSCode。
Lem 的特性、缺口与用户体验
- Lem 目前具备 LSP 客户端、Emacs 风格和 Vim 风格模式、支持图像的基于 SDL 的 UI、目录/文件管理模式,以及一个正在开发中的 Git 界面(含 staging 和 rebase)。
- 但它目前缺少核心的 Emacs“杀手级应用”,如 org-mode、接近 Magit 的成熟度,以及丰富的生态工具(treemacs、vertico 等),这使迁移变得困难。
- 它确实支持 modal editing;但像 Doom/Spacemacs 那样的 leader-key 式配置尚未具备,被一些人视为阻碍。
- 一位评论者希望它内置更强的图形/图表能力;Lem 的 SDL 能力或许暗示了这一方向,但尚未真正实现。
网站与媒体传输
- EmacsConf 网站因无需 JavaScript 也能良好工作、且较为轻量而受到称赞。
- 一些 Apple/Safari 用户在播放 WebM/VP9 时遇到困难,讨论因此转向编解码器支持,而不是 JS。
历史与相关项目
- 澄清:最初的 EMACS 是 MIT AI Lab 的一个项目;后来的 Gosling Emacs 还曾有商业版本,并影响了 GNU Emacs。
- 还提到了其他受 Emacs 启发的项目:Rune(Rust)、Pimacs(Go)、Helix/Kakoune 风格编辑器,以及历史上的 Deuce 架构,后者被认为是一个被低估的灵感来源。