执行功能如代码:使用 Doom Emacs 脚本化我的大脑

发布: (2026年2月8日 GMT+8 19:57)
10 分钟阅读
原文: Dev.to

Source: Dev.to

请提供您希望翻译的正文内容,我将按照要求保留源链接、格式和技术术语,仅翻译正文文本。

在我人生的前 21 年…

我感觉自己在与自己进行一场上坡战——到处都是半废弃的项目,时常想着 “我本可以而且应该做得更多。”
好像我装载的是有缺陷的软件,而其他人似乎轻而易举地完成即使是最简单的任务。

事实是?我并不是在运行有缺陷的软件;我运行的是完全不同的操作系统。
最近我找到了文档:ADHD

当我了解了这个环境的规格后,我意识到像 Notion 或手机待办列表这样的标准工具根本帮不上忙。它们假设有一个我根本不存在的正常运行环境。

在我的设备上,我已经在使用 Doom Emacs,因为我是个喜欢摆弄技术的极客。所以,我没有尝试去改变自己以适应某个工具,而是决定学习一点 Elisp,把工具改造成适合我的样子。

下面就是我如何把配置武装起来,对抗执行功能障碍的过程。


Phase 0 – 基础设施

在动手写任何 Lisp 代码之前,我必须先解决另一个问题:在设备之间同步我的笔记

我的大脑 L1 缓存非常小。如果我在厨房里灵光一现,但我的待办事项列表在另一个房间的台式机上,“延迟”(以及心理障碍)就足以让任务消失。等我回到台式机时,情境已经丢失。

我过去尝试过几种方案:

  • 基于手机的记事应用——在设备之间分割笔记,效果不佳。
  • 个人 Discord 服务器——很快变得难以维护且无法搜索。

我需要的是一个唯一可信来源,能够在任何地方零摩擦地访问。

设备

  1. 台式机
  2. 笔记本电脑
  3. 手机(使用 Orgzly 应用来编辑 Org 模式)

…以及你现在正在阅读本文的第四台设备:我的 VPS(未来的家庭实验室)。

方案:Syncthing

我选择了 Syncthing。在拥有 VPS 之前,我曾考虑在设备之间直接使用 Syncthing,但这要求所有设备同时在线——我的笔记本和台式机很少同时开机。VPS 充当“云”中心,即使台式机关闭,笔记本仍然可以从 VPS 同步笔记。

第 1 阶段 – “能量”指数

标准的效率建议告诉你按 截止日期重要性 对任务进行排序。这对神经典型大脑效果很好。对我来说,20 条“重要”任务的列表看起来像一堵噪音墙,会立刻触发分析瘫痪。

我意识到我的瓶颈不是时间,而是 电量

  • 有些日子我的状态是 110 %。
  • 有些日子我的状态是 10 %。

在低能量的日子里,看到一个大而耗能的任务会让我跳过 那个 任务——甚至整个列表。

解决方案

我修改了工作流,让每个任务都包含一个 ENERGY 属性。与其问 “什么时候到期?” 我改为问 “这会消耗我多少能量?”

我定义了三个能量等级:

级别描述
High复杂任务,通常需要深度专注
Medium标准工作,例如回复邮件
Low简单任务,例如清理文件或安排约会

Emacs 配置

;; Map priorities
(setq org-priority-highest   ?A
      org-priority-lowest    ?C
      org-priority-default   ?B)

;; Colour‑code priorities
(setq org-priority-faces
      '((?A :foreground "#ff6c6b" :weight bold)
        (?B :foreground "#98be65")
        (?C :foreground "#51afef")))

;; Define energy levels (global property)
(setq org-global-properties
      '(("ENERGY_ALL" . "Low Medium High")))

;; Colour‑code TODO states
(setq org-todo-keyword-faces
      '(("TODO" :foreground "#51afef" :weight bold)
        ("DONE" :foreground "#98be65" :weight bold)
        ("WAIT" :foreground "#da8548")))

议程概览

真正的魔法发生在议程概览(SPC o A x)中。我创建了自定义命令,根据能量消耗对任务进行排序。

当我坐下来查看议程时,我会检查自己的内部电池:

  • 疲惫? → “快速收获”(Low 能量)
  • 专注? → “深度工作”(High 能量)

这可以防止负面螺旋;即使在糟糕的一天,我通常也能清理一些 “Low Energy” 项目,保持前进。

(setq org-agenda-custom-commands
      '(("x" "Overview"
         ((tags-todo "PRIORITY=\"A\"+ENERGY=\"Low\""
                     ((org-agenda-overriding-header
                       "Quick Wins (High Impact, Low Energy)")))
          (tags-todo "PRIORITY=\"A\"+ENERGY=\"High\""
                     ((org-agenda-overriding-header
                       "Deep Work (Focus Required)")))
          (tags-todo "PRIORITY=\"A\"+ENERGY=\"Medium\""
                     ((org-agenda-overriding-header
                       "High Priority (Medium Energy)")))))))

Phase 2 – 降低输入延迟

忘记(上下文中的)想法是一场持续的斗争。打开文件浏览器、定位到正确的文件并把所有内容敲进去,摩擦太大。我需要一种能够随时捕捉想法、任务和待办的方式。

策略 1 – org-capture

无论我在做什么,都可以使用自定义快捷键启动 emacsclient(在 KDE Plasma 上是 Ctrl+Alt+e),然后在 Emacs 中按 SPC X。会弹出一个自定义捕获窗口,询问我要捕获的思考类型。

示例:选择一个待办(t)。随后系统会提示我填写五项关键信息:

  1. 优先级
  2. 任务名称
  3. 标签(自由格式)
  4. 截止日期
  5. 能量水平

这迫使我在捕获时就分配优先级和能量水平,使工作流保持紧凑且低延迟。

(原文的其余部分继续介绍其他策略和细化;其精神保持不变。)

执行功能即代码 – Doom Emacs + ADHD


第 2 阶段 – 捕获模板

我需要一种快速添加任务而不打断思路的方法。下面的 org-capture 模板让我可以把任务、想法或项目直接放入相应的文件,并自动填入正确的元数据(优先级、能量等级、截止日期等)。

(setq org-capture-templates
      '(("t" "Todo" entry (file+headline "~/org/inbox.org" "Tasks")
         "* TODO [#%^{Priority|A|B|C}] %^{Task Name} %^g\nDEADLINE: %^t\n:PROPERTIES:\n:ENERGY: %^{Energy?|Low|Medium|High}\n:END:\n")

        ("i" "Idea/Note" entry (file+headline "~/org/inbox.org" "Notes")
         "* %?\n%U\n")

        ("p" "Project Task" entry (file+headline "~/org/projects.org" "Projects")
         "* TODO [#%^{Priority|A|B|C}] %^{Task Name} [/]\nDEADLINE: %^t\n:PROPERTIES:\n:ENERGY: %^{Energy?|Low|Medium|High}\n:END:\n")))

进入全屏模式退出全屏模式


第 3 阶段 – 视觉微调

我容易出现数字感官过载,所以保持 UI 极简。我使用 Catppuccin(mocha)主题,因为它对比度低且视觉舒适。最大的视觉提升来自字体:

  • 等宽字体Fira Code)用于代码块。
  • 可变宽字体Fira Sans)用于普通文本,以区分“人类语言”和“计算机语言”,降低认知负荷。
;; Fonts
(setq doom-font (font-spec :family "Fira Code" :size 16 :weight 'semi-light)
      doom-variable-pitch-font (font-spec :family "Fira Sans" :size 17))

;; UI
(setq doom-theme 'catppuccin)
(setq display-line-numbers-type t)   ;; Set to nil if you prefer no line numbers

进入全屏模式退出全屏模式

我还使用 Zen mode 将文本居中,并在需要深度专注时隐藏 mode‑line(例如撰写本文时)。

Conclusion – “Works on My Machine!”

这些调整并不能“根治” ADHD,仍然会有忽视日程或无法完成低能量任务的日子。不过,由于所有内容都保存在通过 Syncthing 同步的纯文本文件中,系统具备弹性且不带评判性。休息后回来时,所有数据仍然在那儿等着我。

我不再与大脑的操作系统硬碰硬,而是开始编写软件补丁。21 年来,我第一次感觉自己真的拥有了 root access

欢迎随意偷走我的配置!我的 Doom Emacs 点文件位于我的 Nix 配置仓库中。

感谢阅读!我计划写一篇后续文章,介绍我如何以类似的方式使用 org-roam——敬请期待。

如果你有任何问题或需要帮助,可以在主页上找到我的 Discord 链接。随时乐意提供帮助! ;3

Read the original article on my blog here.

0 浏览
Back to Blog

相关文章

阅读更多 »