使用Emacs和org-remark进行就地批注笔记
摘要
一篇介绍org-remark的博文,这是一个Emacs包,用于就地批注文件,通过将笔记与源文件保持关联,解决了数字笔记中的解耦问题。
<p><a href="https://lobste.rs/s/kdqqzb/annotate_place_notes_with_emacs_org">评论</a></p>
查看缓存全文
缓存时间: 2026/05/20 14:28
# 使用 Emacs 和 org-remark 进行原地标注笔记
来源:https://www.chiply.dev/post-annotate-in-place
使用 Emacs 和 org-remark 进行原地标注笔记## 使用 Emacs 和 org-remark 进行原地标注笔记
## 目录
- 1. 关于笔记、标注、Emacs (https://www.chiply.dev/post-annotate-in-place#about--notes-annotations-emacs-org-remark-)
- 2. 视频:org-remark 实战演示 (https://www.chiply.dev/post-annotate-in-place#the-video--org-remark-in-action)
- 3. 现代数字笔记的问题 (https://www.chiply.dev/post-annotate-in-place#the-problem-with-modern-digital-note-taking)- 3.1. 上下文切换的代价 (https://www.chiply.dev/post-annotate-in-place#the-context-switching-tax) - 3.2. 来源遗忘与笔记遗忘 (https://www.chiply.dev/post-annotate-in-place#source-amnesia-and-note-amnesia) - 3.3. 重访时无信号 (https://www.chiply.dev/post-annotate-in-place#no-signal-on-revisit) - 3.4. 记忆焦虑 (https://www.chiply.dev/post-annotate-in-place#memory-anxiety)
- 4. 原地标注:核心模式 (https://www.chiply.dev/post-annotate-in-place#annotate-in-place--the-pattern)
- 5. 现有工具的优点与不足 (https://www.chiply.dev/post-annotate-in-place#what-existing-tools-get-right--and-wrong-)
- 6. org-remark 简介 (https://www.chiply.dev/post-annotate-in-place#org-remark-in-brief--org-remark-emacs-)- 6.1. 笔与元数据 (https://www.chiply.dev/post-annotate-in-place#pens-and-metadata)
- 7. 将 org-remark 扩展到新模式 (https://www.chiply.dev/post-annotate-in-place#extending-org-remark-to-new-modes)
- 8. 每日回顾工作流 (https://www.chiply.dev/post-annotate-in-place#a-daily-review-workflow)
- 9. org-remark 带给你的好处 (https://www.chiply.dev/post-annotate-in-place#what-org-remark-gives-you--benefits-org-remark-)
- 10. 需要注意的问题 (https://www.chiply.dev/post-annotate-in-place#caveats)
- 11. 结语:核心在于模式 (https://www.chiply.dev/post-annotate-in-place#closing--the-pattern-is-the-point)
- 12. TL;DR (https://www.chiply.dev/post-annotate-in-place#tldr)
## 3. 现代数字笔记的问题
我们这些构建者常常被教导:耦合是坏的、坏的、坏的……但在某些罕见的情况下,耦合却完全合理。
大多数数字笔记方法都将**笔记**与**来源**进行**解耦**。在我看来,这种解耦是有害的。无论是数字还是纸质,我通常在一个应用中阅读,在另一个应用中记录。纯粹在书上做标注是个例外,但一旦我引入类似"知识库"(个人笔记图谱——比如 Obsidian、Roam、Logseq、`org-roam`、`denote`),我就开始处理解耦的产物:源产物(抽象来说就是"网站")和标注产物(抽象来说就是"笔记本")。
在这里,"网站"可以是一个网页、一本书,甚至是你自己的笔记本;而"笔记本"可以是一个数字笔记应用,或者一张实体纸张。
读到这里的人(我希望)都能理解这种解耦带来的困境,但下面几点对我来说尤为突出:
### 3.1. 上下文切换的代价
每次操作的摩擦很小,但累积起来却很可观,而且悲剧性地惩罚了"留意"这一美德行为。"留意"听起来被动,却是我们作为特殊人类的知识杠杆,我认为应该尽可能减少它的摩擦。我希望让"留意"发挥它的魔力,不受工具或笔记工作流的摩擦与束缚。
### 3.2. 来源遗忘与笔记遗忘
我经常发现自己积累的笔记完全脱离了其来源。几个月后重新翻阅笔记时,我不得不再去寻找当初做笔记的来源。而重新访问那个来源时,我又会去寻找针对该来源所做的笔记,有时甚至记不清自己是否曾经记录过。
我发现当重新访问来源时(笔记遗忘),这个问题更为严重。最好的情况是:如果我确实做了笔记,那么可能记下了来源的标题,甚至 URL。这个单向链接在我阅读笔记时也许能救我。但当我重新访问来源时,来源本身没有任何嵌入信息告诉我它存在相关高亮或笔记,于是我就再也找不回那些珍贵记录。
### 3.3. 重访时无信号
当我回到来源(可能是几个月或几年后),没有任何东西告诉"过去的我"什么内容曾引起我的兴趣。空白的来源看起来和第一次访问时一模一样。我多半已经失去了对来源材料的熟悉度,或者在重访前未能回顾相关笔记,于是我的大脑必须做大量工作才能重新打捞起那些我已经发现并记录过的重点。而在此之后,还有更难、更有价值的工作——重新熟悉其中的概念,或者将其与我在此期间学到或领悟的其他内容进行综合。
### 3.4. 记忆焦虑
如果你像我一样,可能会持续担忧:每天花大量时间阅读复杂的原始材料,事后能否真正进行**回顾**?
大多数第二大脑系统会通过鼓励捕获信息,但没有在来源与笔记之间建立稳健的双向链接,从而加剧了这种担忧。org-mode 的捕获功能提供了单向链接(在笔记中),但当我重新访问信息被捕获的来源时,这些捕获的数据永远不会浮现。我基本上必须知道笔记确实存在才行。
相比之下,当我在实体书上做注释时,标记**就留在页面上**。对我个人来说,这使得在实体媒体上做笔记毫无后顾之忧,因为我知道所有高亮和边缘笔记都会留在那里,当我再次翻开那本书或那篇论文时,它们会灿烂地闪现在我眼前。重读时,我的目光会被吸引到那些上次对我重要的段落上。
## 4. 原地标注:核心模式
这种模式,和大多数真正有用的模式一样,简洁而优雅。
采用原地标注,当我发现值得标记的内容时,只需一个简单的动作进行高亮,就像对待实体文档一样。高亮会在下次我访问该来源时可见,同时一个独立的笔记文件会在后台更新,形成一条**条目**,包含三个核心字段以及可选的元数据:
1. **摘录**(这样即使来源消失,原文引述仍然保存下来)。
2. 返回来源的**链接**,并包含足够的位置信息以找到确切段落。
3. 我选择附加的任何**评论**。
4. 可选(可配置的)**元数据**(时间戳、标签等)。
我可能想对这些笔记做的任何其他操作(搜索、标签、每日回顾、与知识库集成),都通过这些记录的字段得以实现。该模式的优雅之处在于,它在做笔记时要求我**付出极少**,而在回顾或搜索时又给予我**极大便利**。
我已经详细阐述了阅读和笔记的复杂性。原地标注拯救了我,它确保我"留意"的额外工作成本**几乎为零**。我只需要指向并高亮,就好像文档和实体一样符合人体工学。
## 8. 每日回顾工作流
因为每条高亮都带有日期链接,**回顾今天读过的内容**只需简单 grep 那个时间戳。我在高亮目录中搜索当天的日期链接,就能得到恰好是我今天觉得有意思的段落,每条都附有我写的任何评论以及可用的来源链接。我的视频演示了此工作流。
对我而言,这完全消除了回顾任何阅读内容的焦虑,并使我能够更广泛、更狂热地阅读。我不必记住我正在读的任何东西,因为 org-remark 创建的时间戳条目会替我完成记忆。
为了让这个工作流顺畅运行,你可能需要考虑两个调整:
- **将高亮持久化到稳定的目录。** 我的高亮保存在 `~/logseq/pages/` 下,但任何单一目录都可以。对日期链接使用 `rg` 或 `grep` 就是回顾查询。额外的好处是,如果你在多台机器之间同步知识库,持久化的原地高亮会出现在所有同步了知识库的机器上。
- **选择你的知识库能理解的日期链接格式。** 我使用 Logseq 的 `[[Mar 4th, 2026]]` 形式,这样同一个链接在我的图谱中还可以作为反向链接;但 `[[2026-03-04]]` 在 `org-roam` 或 `denote` 中同样适用。
## 10. 需要注意的问题
在 Emacs 中使用 `org-remark` 全面采用这种模式时,存在一些注意事项。
- **JavaScript 密集型网页。** `eww` 无法渲染现代 SP A 风格页面,因此我无法直接在其中进行高亮。我的应对方案是使用稍后阅读工具(我的配置中用的是 Wombag (https://github.com/artkpv/wombag))来剪辑页面,生成干净的文本视图,这样 `org-remark` 就能进行标注。对于这两种方法都不理想的情况,Readwise 仍然是可靠的浏览器端备选方案。
- **PDF 文件。** `org-remark` 不支持 PDF。在 Emacs 中,PDF 的原地标注选项是 `pdf-tools` (https://github.com/vedang/pdf-tools),它允许你在 PDF 缓冲区中直接添加注释。`org-noter` (https://github.com/org-noter/org-noter) 是 spirit 上的等价方案,它将 org 笔记与 PDF/EPUB 位置并排绑定(而非原位),其每日回顾工作流只需稍加调整即可移植。
- **来源文本变动。** 当底层缓冲区发生变化时,`org-remark` 利用持久化的摘录来重新定位高亮,但经过大量编辑的文件(或每次访问时都会变化的网页)仍然可能产生孤立高亮。笔记文件中始终保留有摘录,但覆盖层可能需要重新锚定。
- **Emacs 锁定。** `org-remark` 这个**工具**只适用于 Emacs。但**模式**本身并非如此(请继续阅读)。如果你尚未使用 Emacs,请参见结语部分:Readwise 和 Hypothes.is 一起也很好地实现了原地标注模式,而且你围绕它们建立的工作流,如果将来切换到 Emacs 中的 `org-remark`,也可以迁移过去。
## 11. 结语:核心在于模式
总结时,我想强调的并非特指 `org-remark`,而是原地标注这个模式。
在 Emacs 中,实现特别完整,因为 Emacs 将每一个阅读界面都视为文本缓冲区。在 Emacs 之外,那四个字段(摘录、链接、评论、可选元数据)是评估你所采用的任何原地标注工具的正确标尺。我个人认为,如果想从原地标注解决方案中获得杠杆效应,这些字段是必不可少的。
如果你不使用 Emacs,Readwise 和 Hypothes.is 在浏览器中实现了该模式。我都用过,并认为它们**很好**,值得使用(事实上,当我在 Emacs 中无法进行原地标注时,Readwise 依然是我的备选方案)。如果你**使用** Emacs,那么 `org-remark` 值得花上三十分钟配置,并为每种模式编写一点 Elisp 代码。
无论哪种情况,你都能从原地标注中受益。
## 12. TL;DR
大多数数字笔记将笔记与其来源分离。**原地标注**是一种在内容所在之处进行标记的模式,高亮在重访时可见,摘录+链接持久化在单独的笔记文件中。`org-remark` (https://github.com/nobiot/org-remark) 是其 Emacs 实现:内置支持 `eww`、`Info`、`nov.el` 电子书以及普通文件,还附带一个小的扩展协议,用于添加新的界面(`elfeed`、`pubmed-show-mode`、`wombag`、`gptel` 聊天等)。带有时间戳的默认笔可将笔记文件转换为可回顾的时间线:每日回顾就是对当天日期链接的 grep 搜索。注意事项包括:JavaScript 密集型页面(回退到 Wombag 或 Readwise)、PDF 文件(原地标注使用 `pdf-tools` (https://github.com/vedang/pdf-tools),并排标注使用 `org-noter` (https://github.com/org-noter/org-noter)),以及 Emacs 锁定本身。**工具体**仅限 Emacs,但**模式**是可移植的。
相似文章
Emacs rec模式:纯文本数据库系统
一篇介绍Emacs rec模式作为纯文本数据库系统的博文,用于跟踪书籍并与Org模式集成。
Annota
Annota 是一款跨平台、本地优先、由人工智能驱动的笔记应用。
软件界的Emacs化
作者讲述了在终端中阅读 Markdown 的烦恼,并描述了如何使用 Claude 快速构建一个自定义的 macOS Markdown 查看器(MDV.app),展示了 AI 如何让人能够迅速创建个人软件工具。
Apple Notes 功能缺失的变通方案
一篇博客文章,介绍了如何通过创建并维护重复的备份副本来解决 Apple Notes 缺少只读笔记功能的问题。
note.md
note.md 是一个本地优先、基于 Markdown 的工作空间,专为研究写作设计,提供无干扰的环境。