May I recommend thinking of Emacs as your Fortress of Solitude
May I recommend thinking of Emacs as your Fortress of Solitude
建议将 Emacs 视为你的“孤独堡垒”
First thing I do when I turn on my computer is open my Emacs. What awaits me is a blank, dark purple screen with a random motivational quote on top. I will usually take a moment, enjoy the calmness of the empty canvas in front of me. There is nothing fighting for my attention, nothing I have to react to. Just the familiar comforting view, patiently waiting for me.
当我打开电脑时,做的第一件事就是启动 Emacs。等待我的是一个空白的深紫色屏幕,顶部显示着一句随机的励志名言。我通常会花点时间,享受眼前这块空白画布带来的宁静。没有任何东西在争夺我的注意力,也没有任何需要我立即回应的事物。只有那熟悉的、令人安心的界面,耐心地等待着我。
#+begin_disclaimer You might start thinking at this point, ok another stereotypical crazy Emacs user, sitting in his basement whole day writing C, browsing web with JS disabled, chatting on IRC and reading his email in his Emacs. However, IMHO, I (and many others) am more unlike that stereotype than you might imagine! It has been long time since I have written any C, lately it has been mostly TypeScript (ok and some Haskell I admit). I don’t even code much these days! I am a founder/CTO of a startup and I spend most of my time hiring, managing, reviewing, emailing, marketing, strategizing. I have a family, small kids, a dog, hobbies (even some that are not Emacs). I read my email and browse web in Chrome, use Notion, G Suite, Discord, LLMs (not for writing though), and I never managed to get into IRC. #+end_disclaimer
#+begin_disclaimer 你可能此时会想:好吧,又是一个典型的 Emacs 狂热用户,整天坐在地下室写 C 语言,禁用 JavaScript 浏览网页,在 IRC 上聊天,还在 Emacs 里收发邮件。然而,依我之见,我(以及许多其他人)与这种刻板印象的差距比你想象的要大得多!我已经很久没写过 C 语言了,最近主要用的是 TypeScript(好吧,我承认偶尔也用 Haskell)。我甚至现在都不怎么写代码了!我是一家初创公司的创始人兼 CTO,大部分时间都在忙于招聘、管理、审核、处理邮件、市场营销和制定战略。我有家庭、年幼的孩子、一条狗,还有各种爱好(甚至有些爱好与 Emacs 无关)。我用 Chrome 收发邮件和浏览网页,使用 Notion、G Suite、Discord 和大语言模型(虽然不用它们来写作),而且我从来没能习惯使用 IRC。 #+end_disclaimer
That unassuming blank canvas, inviting you to type? That is the scratch buffer. It’s there every time you start Emacs, by default. And while it may not seem like anything special, it says a lot about Emacs. No code editor I know of comes with such blank canvas. Text editors often do, but as a starting point for a new document. Instead, in Emacs, it is just an unassuming canvas you can “scratch” on, assignment of meaning left to you.
那个朴实无华、邀请你输入内容的空白画布是什么?那是“草稿缓冲区”(scratch buffer)。它默认存在于你每次启动 Emacs 的时候。虽然它看起来没什么特别,但它却深刻地体现了 Emacs 的精髓。据我所知,没有任何代码编辑器会提供这样的空白画布。文本编辑器通常也会有空白页,但那是作为新文档的起点。而在 Emacs 中,它仅仅是一个你可以随意“涂鸦”的画布,赋予它什么意义完全由你决定。
Once in Emacs, I will usually open my daily schedule/agenda, which is only a key combo away. I hit <space> o d and in front of me is: my daily checklist, scheduled events for today (synced from my gcalendar), a list of tasks I planned for today + any from earlier days I haven’t finished, some general notes, my inbox (of tasks, GTD style).
进入 Emacs 后,我通常会打开我的日程表/议程,只需一个快捷键组合即可。我按下 <space> o d,眼前便会出现:我的每日清单、今日预定事件(从 Google 日历同步)、我为今天计划的任务列表(加上之前未完成的任务)、一些通用笔记,以及我的收件箱(GTD 风格的任务管理)。
Figure 1: My daily agenda with a task open 图 1:打开了某项任务的每日议程
Pressing e while on any task or event opens up its “page” where I can take any notes and work on it. I will also often “clock in” a task I am working on right now, tracking how long I am working on it, which I found very effective to maintain focus. Later I can also generate a report of time tracked. At the end of the work day, I will hit <space> o c w j and write down my journal entry, just a couple of sentences reflecting on the work day.
在任何任务或事件上按下 e 键,就会打开它的“页面”,我可以在那里做笔记并进行处理。我通常还会为当前正在处理的任务“打卡”(clock in),追踪我投入的时间,我发现这对于保持专注非常有效。稍后,我还可以生成一份时间追踪报告。在工作日结束时,我会按下 <space> o c w j 写下我的日记,只需几句话来反思这一天的工作。
Figure 2: Writing a new daily journal entry 图 2:撰写新的每日日记
Later in the day, I might start working on a non-trivial task. Maybe it is a coding task, or it is a hiring strategy, or coming up with the new version of content for the landing page, or planning next sprint, or it is writing a longer, important email or Discord message. Often, I will start with opening the task’s “page” in Emacs and start writing it up and breaking it down there. I will put down what I know so far, define the requirements, collect links to the materials I have, brainstorm, create subtasks with relevant TODO statuses, put some time estimates, … .
当天晚些时候,我可能会开始处理一项复杂的任务。也许是编码任务,也许是招聘策略,或者是构思落地页的新内容,规划下一个冲刺(sprint),又或者是撰写一封较长的重要邮件或 Discord 消息。通常,我会先在 Emacs 中打开该任务的“页面”,开始撰写并将其拆解。我会写下目前已知的信息、定义需求、收集相关资料链接、进行头脑风暴、创建带有相应 TODO 状态的子任务、进行时间估算等等。
At any moment, pressing <space> i c opens up chat with an LLM model of my choice in Emacs if I need it, with access to any open buffers (“tabs”/“docs”) and whatever tools I defined for it (or whole Emacs if I decide to give it). <space> ' opens up the terminal, and I can of course also run e.g. Claude Code or OpenCode from it. File manager is just <space> d d away, while <space> g g opens magit, Emacs’ crazy good interface for anything Git-related, all of these in the context of the current project or buffer.
在任何时候,按下 <space> i c 就可以在 Emacs 中与我选择的 LLM 模型进行对话(如果需要的话),它还可以访问任何打开的缓冲区(“标签页”/“文档”)以及我为它定义的任何工具(如果我愿意,甚至可以访问整个 Emacs)。<space> ' 可以打开终端,我当然也可以从中运行 Claude Code 或 OpenCode 等工具。文件管理器只需 <space> d d 即可调用,而 <space> g g 则会打开 Magit——Emacs 处理 Git 相关事务的超强界面。所有这些操作都在当前项目或缓冲区的上下文中进行。
If I want to focus on writing, like right now, I will hit <space> a w and only a single window will remain open, with text centered in the middle. A kind of a “Zen mode”. While doing all this, I am using the same keybindings and commands the whole time to move around, to edit text, to search, to manipulate windows, … . It’s all one tightly integrated environment, smoothly flowing from one workflow to another.
如果我想专注于写作(就像现在这样),我会按下 <space> a w,此时只会保留一个窗口,文本居中显示。这是一种“禅模式”。在做这一切的同时,我始终使用相同的快捷键和命令来移动光标、编辑文本、搜索、操作窗口等。这是一个紧密集成、从一个工作流平滑过渡到另一个工作流的统一环境。
Figure 3: Reviewing the sprint plan with LLM. 图 3:使用 LLM 审查冲刺计划。
Why am I talking about my usage patterns above? I am trying to demonstrate how Emacs goes beyond just an editor / IDE. Often you will hear that Emacs is not an editor, but an OS (operating system). I get where this comes from, but I don’t think it does much favors to Emacs, as it presents it as something overly complex that you don’t really need (I am already running Emacs on my OS, why would I need it to also be OS?). Or you might hear that Emacs is a “computing environment”, and while I got to love that description once I got deep enough into Emacs, I don’t think it does much for anybody new to it.
我为什么要谈论上述的使用模式?我是想展示 Emacs 如何超越了单纯的编辑器或 IDE。你经常会听到说 Emacs 不是编辑器,而是一个操作系统(OS)。我明白这种说法的由来,但我认为这对 Emacs 并没有什么好处,因为它把它描绘成一种你并不真正需要的、过于复杂的东西(我已经在一个操作系统上运行 Emacs 了,为什么还需要它也成为一个操作系统?)。或者你可能会听到说 Emacs 是一个“计算环境”,虽然我在深入了解 Emacs 后爱上了这个描述,但我觉得这对新手来说并没有太大帮助。
Instead, I would like to invite you to think of Emacs as your (digital) home base. You might know about Superman’s Fortress of Solitude. It is where he goes to recuperate, to heal, to collect his thoughts, to plan his next move. Whatever happens out there, he knows what he is coming back to, to his equipment, memorabilia, laboratory, all of it how he set it up, just for himself. His personal space, his home base, his sanctuary.
相反,我想邀请你把 Emacs 想象成你的(数字)大本营。你可能知道超人的“孤独堡垒”(Fortress of Solitude)。那是他去休养、治愈、整理思绪、规划下一步行动的地方。无论外面发生了什么,他都知道自己要回到哪里——回到他的装备、纪念品、实验室,回到所有他为自己亲手打造的一切。那是他的私人空间,他的大本营,他的避难所。
Well, Emacs is not so much different! Due to how flexible and extensible it is, you can truly make it your own, personal and unique. It exists outside of external events, as a piece of standalone, evergreen tech that has existed for 50y now and will likely be here for as many more, not influenced by hype or governed by a single company. It gives you the space you need to collect your thoughts, to plan, to write, to build your knowledge base, to create. It allows you to create your own custom tools and workflows, uniquely suited for you. It is up to you to shape it, mold it into what you need, assign it meaning, and the guarantee you get is that you are free to do whatever you want and that it isn’t going anywhere. Which is what you expect from a home (base). This is what Emacs became to me. Emacs is my home base, my command center, my starting point and my rest stop.
Emacs 其实也差不多!由于它极其灵活且可扩展,你可以真正地让它成为属于你自己的、独一无二的工具。它独立于外部事件之外,作为一项已经存在了 50 年且很可能还会存在更久的常青技术,它不受炒作影响,也不受任何单一公司的控制。它为你提供了整理思绪、规划、写作、构建知识库和创造所需的空间。它允许你创建自己定制的工具和工作流,使其完全契合你的需求。你可以随心所欲地塑造它、将其打造成你需要的样子、赋予它意义,而你得到的保证是:你可以自由地做任何你想做的事,而且它永远不会消失。这正是你对一个家(大本营)的期待。这就是 Emacs 对我的意义。Emacs 是我的大本营,我的指挥中心,我的起点,也是我的休憩站。