文章摘要
文章探讨了Emacs的独特设计:默认缓冲区是文本编辑和Lisp解释器,而非终端或文件管理器。作者认为Emacs的真正竞争对手不是其他编辑器,而是网页浏览器,因为它本质上是一个可扩展的Lisp平台,用户可以在其上构建各种应用。
文章总结
文章核心内容重述
标题:Emacs 是一个 Lisp 面包板
作者通过思想实验提出:如果 Emacs 的默认缓冲区是终端模拟器或文件管理器,它可能会成为 iTerm2、Kitty 或 Total Commander 的竞争对手。但现实是,Emacs 默认是一个带有 Lisp 解释器的记事本,其天然对手是 Vim。然而,Emacs 不断扩展,最终成为操作系统的界面。
核心观点:Emacs 是一个“Lisp 面包板”
作者将 Emacs 比作电子面包板——所有模块(用 Lisp 编写)共享一个总线,实现无缝集成。它具备以下特性: - 界面:可在同一窗口内集成终端、邮件客户端、代码编辑器等,共享快捷键、主题和拼写检查。 - 连接器:程序用同一语言编写,运行在同一运行时,共享事件总线。 - 栖息地:内置解释器,无需外部二进制文件即可创建脚本和工作流。 - 虚拟机:跨平台运行时,字节码可在任何操作系统上运行。
澄清误解: - 不是文本编辑器,而是完整的工作环境,编辑器只是其中一个程序。 - 不是操作系统,它依赖底层操作系统。 - 不是 IDE,需要安装 LSP 后端、调试器等包才能实现编程功能。
作者的工作流示例: 1. 脚本与原型设计:用 Elisp 函数替代 bash 脚本,可添加图形界面(如带输入框和按钮的备份工具)。 2. 编程与开发:通过标签页管理不同任务,集成 LSP、AI 编程助手、Git 客户端等。 3. 笔记与学习:使用 org-mode 和 Denote 管理笔记,阅读 PDF/EPUB 文件。 4. 通信:用 mu4e 处理邮件,ERC 用于 IRC,mastodon.el 用于 Mastodon,telega.el 用于 Telegram。 5. 新闻与阅读:用 Elfeed 订阅 RSS,eww 浏览网页。 6. 休闲:用 EMMS 播放音乐,chess 下棋。
结论:Emacs 的真正对手是浏览器
浏览器也是跨平台虚拟机,但标签页是孤立的,无法共享总线,且模块属于第三方。Emacs 是唯一可完全拥有的工作环境。使用 Emacs 并非怀旧,而是因为目前没有其他软件能提供如此自由的工作方式。
评论总结
根据评论内容,主要观点和论据总结如下:
观点一:超级应用 vs. 小型应用(评论1,评分None) - 核心争论:是选择多个单一功能的小应用,还是一个集所有功能于一身的“超级应用”。 - 关键引用:behnamoh 指出“It's a matter of philosophy; would you rather have multiple small apps that do only one job or one 'super app' that does it all?” 并提到“Maintaining 'super apps' is more challenging due to the coupling of so many pieces to each other.”
观点二:Emacs 与 Lisp 生态的扩展性(评论2、3、7,评分None) - 核心论据:Emacs 通过 Elisp 实现高度可定制,类似 Lisp 机器精神;其他项目如 Lem(基于 CommonLisp)或 Interlisp 可提供更丰富的生态。 - 关键引用:xvika 称“Something like Lem could go even further because of the richer CommonLisp ecosystem compared to Elisp one.”;rbc 认为“GNU Emacs is probably the easiest way to capture the spirit of working on the Lisp machines.”;nonfamous 回忆“I learned 'real' programming in the early 90's by learning Elisp to customize Emacs... I used Elisp for everything.”
观点三:工作与个人数据隔离的挑战(评论4,评分None) - 核心论据:统一应用难以处理工作与个人数据的分离,用户需要标签和同步功能来区分。 - 关键引用:boscillator 质疑“Who are y'all working for that you can bring professional stuff onto the same system as personal stuff?” 并希望“one of these do everything apps that lets me tag and sync just stuff that ought to be synced.”
观点四:浏览器作为超级应用的潜力(评论5,评分None) - 核心论据:浏览器通过扩展可成为类似 Electron 的超级应用。 - 关键引用:jiehong 提出“If we take a browser, and add things to make it a super app, we would basically get an extensible electron app, right?”
观点五:术语“lispboard”的困惑(评论6,评分None) - 核心论据:用户对“lispboard”定义不清,文章将其与浏览器关联但未解释。 - 关键引用:hatsumisen 询问“Can someone define 'lispboard' for me? The article calls the browser a lispboard, which breaks every guess at a definition I have.”