我的笔记系统实践 Matrix 首页推荐 Matrix 是少数派的写作社区,我们主张分享真实的产品体验,有实用价值的经验与思考。

Matrix 首页推荐 

Matrix 是少数派的写作社区,我们主张分享真实的产品体验,有实用价值的经验与思考。我们会不定期挑选 Matrix 最优质的文章,展示来自用户的最真实的体验和观点。 
文章代表作者个人观点,少数派仅对标题和排版略作修改。

从这里开始

目前我在用的笔记系统,用一句很简单的话概括就是:本地 markdown 文件 + Dropbox 网盘同步,同时用 Vscode 项目把整个笔记目录管理起来。

大概几年前,我正在 Evernote 、有道云笔记、OneNote 之间反复横跳。当时还没有 Notion,也没有 Roam Research,甚至 PKM(个人知识管理)都很少有人提及。

最后还是选择了本地 markdown 这种「看似不便」的方式,毕竟原生的 markdown 有种种缺点(图片管理、没有 Metadata、不支持复杂排版),本地文件的方式摆脱不了树状文件夹的笔记结构…… 甚至在当时缺少非常顺手的编辑器。但这些年修修补补也一直用下来了,上面提到的种种缺点也都改善或规避,期间也尝试过 Notion、RoamResearch、Logseq,但这种 「基于本地 markdown」的笔记一直都是我的笔记系统基本盘。

这种方案的好处是:

当然 「本地 markdown 文件」这种方案也有一些不便:

关于云笔记服务的数据安全多说几句,大厂的笔记产品,虽然有靠谱的技术保证服务稳定性,但也有潜在的不便:

笔记的目录结构

我的笔记系统有 6 个目录(如上图),分别存储不同的笔记:

▷ 关于 2.Project6.Archive 的分类:是参考了 P.A.R.A 分类法 [注释 5]

  1. 有时间节点的是项目,应该独立出来;
  2. 不再有兴趣不再维护的资料放入归档。

另外,P.A.R.A 的提出者还提到自己私人信息也会放入 Area,这样可以随时放心的分享 Resource,例如体检报告、就诊记录放在名为「健康」的 Area 中,而 Resource 中存放的是运动、健康的有趣文章或者推荐的训练方案。

对于「闪念笔记」,我是不放入这套笔记里的,我会在手机上用 Drafts 记录下来,闪念笔记要每天清空一次,有保留价值的会稍加整合放在 「① Inbox」文件夹下继续组装和完善,无保留价值的闪念笔记直接删除(像一些无价值的呓语和仅仅带有情绪抒发的碎碎念,是无继续写的价值的);用完的闪念笔记也可以不删而是归档,这样在 Drafts 的归档里还是可以保留时间序的碎片的。

上面提到的 ④ 和 ⑤ 都是一个独立的 Obsidian 库,为什么作为知识积累的永久笔记,不放在一个文件夹而是分开? 原因一是如果合并,子目录就会太多,不便管理;并且 ④ 和 ⑤ 中的笔记几乎没有互相引用,所以分为两个库( Obsidian 管理引用链接的范围是库,库外的文件无法引用,属于不同库的笔记是「引用隔离」的 )

关于临时笔记(Fleeting notes)、永久笔记(Permanent notes)的概念:参考了 Luhmann 的笔记分类 。但我的笔记里没有「文献笔记(Literature notes[注释 6]

永久笔记并不「永久」:永久笔记也在一直被更新和完善,拆成小文件、合并成大文件、增加引用链接等等。这也正是 Andy Matuschak 在常青笔记中的描述:「常青笔记的编写和组织是为了随着时间的推移不断进化、贡献和积累」,卢曼提到他的卡片盒笔记是内生长(internal growth)[注释 7]

关于永久笔记奇怪的命名:「Code Primer」 来自于我的编程启蒙书《C++ Primer》;「Scriptorium」意为缮写室,中世纪制作书籍的地方 [注释 8]

永久笔记的结构

上面提到了两个永久笔记目录,如下图,左边是专业知识的笔记,右边是兴趣爱好的笔记:

笔记结构和格式有一套守则

每篇笔记的格式,遵循「原子笔记」:即一篇笔记说明白一件事情。

分类文件夹只有一级,不建立二级分类文件夹:如果某个文件夹下的笔记非常多,不得不建立二级分类的时候,我的选择是仍旧新建一级文件夹,例如 📂11.Programming-Language 文件夹下是编程语言的笔记,因为我一直都在用 Java,所以 Java 相关笔记的积累也非常多了,这时并不在 📂11.Programming-Language 的下层再建立子文件夹,而是与之平级建立了📂12.Java文件夹。 虽然听起来不符合「分类的层级」的常识,但是好处也很明显:

Vscode 文件名模糊搜索

文件名的构成里除了表意的前缀,接下来还有序号,作用也是为了让相关联的笔记排序能凑在一起,同时递也方便笔记的「生长」,例如一个笔记内容太大需要拆分成 2 个笔记,新笔记的序号从 1 递增到 1a 即可,如果 1a 笔记又变大需要拆分,增加 1b 笔记即可。这些从一个笔记拆出来的众多子笔记,依然是保持有序的; 

左边是卢曼的笔记编号系统说明(笔记是如何通过前缀保持有序增长的),右边是我的笔记编号 

上图说明了通过卢曼的编号体系,如何在同一层笔记中表示不同的层级关系:

通过这种命名方式组织笔记,文件夹下面的所有笔记看起来都「平铺」了,但仍可以通过文件名表达出分层的关系,也不会出现「深藏在某个子子子文件夹中的笔记」这种问题了。

「不过早对知识进行分类」,这也符合学习的习惯,刚开始接触某个领域可能只有一篇笔记,我们也不知道这个领域改如何分类,所以开始就不要想「刚开始就把笔记放在合适的分类层级上」,当随着学习的深入,笔记逐渐变大,这时候自然会拆分出新的子类别,让笔记「自然的生长」。

markdown 中的章节是用# Heading来划分的,对于 Heading 的命名也有技巧,Vscode 里支持一种「Symbol 搜索」,Symbol 是什么呢? 对于代码,Symbol 可以理解为函数名字,这个功能可以方便的在一个大的代码工程里快速搜索某个函数。Vscode 里把 markdown 的 Heading(标题) 当做 Symbol,所以在 Vscode 里 按Cmd + T,也可以进入 markdown 标题的模糊搜索,快速定位 Heading。相对于上面的「文件名模糊搜索」,「标题模糊搜索」提供了比文件级别更细粒度的检索。至于如何用好这个功能,这就要求我们在书写笔记的时候,对 Heading 的命名用一些心思了,要「言之有物」。

Vscode Heading 模糊搜索

除了 Vscode,像 Atom、Sublime 等一众现代编辑器都有这个功能(标配),而 Obsidian 则需要通过插件 obsidian-switcher-plus[注释 10]

除了按「某个主题」索引的枢纽笔记,也可以有按「时间线」索引的枢纽笔记,可以方便的看「我这个月记了什么」,当然这种笔记也不是一定要有的,看自己需求,同样也是放在📂_index文件夹。

至此,我的笔记体系的规则说完了,为什么要给自己的笔记格式立那么多规矩? 不累么?无论树状结构、网状结构、或者标签体系,如果管理不好最终都变垃圾场。还记得当年第一个笔记 app 里加过的标签吗? 现在看都不会再看一眼吧。

为什么用这样的笔记结构

综上,我的永久笔记的结构是:「单层目录的矮树状结构,同时使用双链构成稀疏的网状」。

至于为什么用这样的结构,还是要从传统的树状结构 和最近时兴的网状结构比较说起。

网状结构 vs 树状结构

像 RoamResearch、Logseq 这些笔记似乎已经完全放弃了目录,完全采取完全平铺的方式,通过网状结构展示各个笔记的关系。在笔记系统中,网状结构的特点:

Notion、OneNote、Evernote、Trilium 依然采用传统的属性结构,不同的是 EverNote 的「文件夹」就是个「真文件夹」,什么信息都不能存储,而 Notion 的无限层级结构里,每个节点都是可以存储信息的。除了笔记之外还有思维导图,也算是树状拓扑结构,总结一下树状结构的特点:

不好的例子 1:过于繁杂的树形结构,笔记很容易被遗忘在很深的目录中(试想这种情况下,当我们回顾笔记的时候,需要一层层打开目录,也不知道下一层还有什么),另外「分类再分类」也是一种心智负担:

不好的例子 2:这样的网状结构,不是有效的 MOC(Map of Content),这是细菌培养皿:

结论:两种结构我都要

树状结构便于检索和理清概念层级,很像我们理解知识的过程。

网状结构可以打破固有的层级结构,发现不同领域和层次知识间的联系,同时网状拓扑的建立也像新学习某个知识的过程。这两种结构对于笔记体系都是有帮助的,所以都要。

同时通过上面不好的案例,我们发现,树状和网状的劣势都出现于用力过猛:比如过深的树状文件夹,比如迷宫一样的网状链接。所以,回到 03a 这一章节的开始:我的永久笔记这部分的结构是 「单层目录的矮树状结构,同时使用双链构成稀疏的网状」。

其他使用技巧

笔记除了书写,更多的使用场景是阅读,如果是在电脑上,我会用 Chrome 直接打开笔记目录,这里还需要一个 Chrome 扩展:markdown Preview Plus,可以把 markdown 预览出来,支持多种主题。还支持 TOC 大纲,笔记的结构一目了然:

Chrome 预览 markdown

笔记里我还会用一些「注解」,就是一些特殊语法,来帮助检索,比如如果我引用到了其他网页,会加 `@ref` 标注一下,例如:

@ref: [巧用分类法解决使用卡片笔记时遇到的困境](https://sspai.com/post/71274)

 这样有什么好处呢,比如我想统计我的整个笔记库有多少网页引是来自 sspai 的文章,可以用 Shell 命令行,在笔记根目录执行:

grep -irn "@ref" **/*.md | grep 'sspai' | wc -l

同样双链的[[ ]]也可以这样搜索:

egrep -irn "\\[\\[.+\\]\\]" **/*.md

此外,我会用其他的注解,例如 `@todo` = 待办,`@toc` = 内容大纲,`@tldr`= 笔记精要…… 等等,这些注解都不是标准的 markdown 语法,这样写只是为了让自己的笔记有统一的格式,以及检索方便,因为 Vscode 的搜索都是基于单行的。

最后

关于 #PKM (个人知识管理),这个话题很大也很难用几篇文章说清楚,个人的知识管理体系可能终生都在更新迭代。除了笔记还包括工作流、文献管理等等太多的话题,这里只写一点跟「笔记」相关的,抛砖引玉。

> 下载 少数派 2.0 客户端、关注 少数派公众号,解锁全新阅读体验 📰

> 实用、好用的 正版软件,少数派为你呈现 🚀

注释 [1]:iCloud Drive 的同步问题:如果发生了同步冲突,iCloud Drive 的默认做法是存为一个快照,但并不通知用户发生了冲突,这会导致冲突的内容被吞掉了。对比 Dropbox 的做法是生成一个 “xxx 的冲突版本” 文件,提示让用户自己合并。显然 Dropbox 的做法更适合做严格的文档同步器

注释 [2]: MIT 认知科学家 * Joshua* B. Tenenbaum 发表在 * PNAS* 的论文中,比较了抽象知识的不同表征结构,如星形结构、聚类结构、环形结构等等,最终还是意识到人类的最佳知识结构是树形结构: [The discovery of structural form | PNAS](https://www.pnas.org/doi/10.1073/pnas.0802631105)

注释 [3]:Hexo 要求引用图片路径是绝对路径 `![](/image/example.png)`,我的笔记中引用图片用了相对路径 `![](../_images/example.png)`,需要通过 sed 进行批处理转换:这是脚本 Gist:

注释 [4]: [什么是数字花园(Digital Garden)? - 知乎](https://www.zhihu.com/question/400660802/answer/1474845176) 对数字花园做了很好的诠释:“数字花园是介于笔记应用和博客应用之间的半公开数字展览馆,半公开指的不是读者没有权限阅览,而是很多想法只是相互关联的半成品,令他人难以轻易看懂。因为数字花园降低了对内容的要求,不强求作者将所有内容都打磨成文章级的成果,数字花园就会鼓励作者产出更多的内容,不拘一格降笔记”。

注释 [5]:P.A.R.A. 四个字母分别代表 ** 项目(Projects)— 领域 (Areas) — 资源 (Resources) — 档案 (Archives)** 四个顶级类别, 包括您在工作和生活中可能遇到的每种类型的信息。例如 Project 类别的特点是有目标、有交付日期、会结束;Area 类别则是 "需要一直负责和维护的活动领域",例如工作中需要持续关注的领域,或者打算持续发展兴趣(健康 / 写作 / 营销等)。Forte 上的原文链接:[The PARA Method: A Universal System for Organizing Digital Information - Forte Labs](https://fortelabs.com/blog/para/)

注释 [6]:卢曼的文献笔记样例和使用: [Luhmann's Literatur Note Examples — Zettelkasten Forum](https://forum.zettelkasten.de/discussion/1386/luhmanns-literatur-note-examples)

注释 [7]:卢曼提到卡片盒笔记是内增长的(internal growth):[Communicating with Slip Boxes by Niklas Luhmann](https://luhmann.surge.sh/communicating-with-slip-boxes)

注释 [8]:赫尔博斯说:“天堂是图书馆的模样”, [《缮写室》](https://www.amazon.com / 缮写室 - 包慧怡 / dp/B07G2WPF88) 中说 “天堂是缮写室的模样” ,作者在外公那阴暗、并不宽绰的书房里遇到了各类文学作品。她将这里比喻为生命中的第一个缮写室(缮写室是欧洲中世纪制作书籍的场所)

注释 [9]:常青笔记 的概念来自 Andy Matuschak 的笔记: [Evergreen notes](https://notes.andymatuschak.org/Evergreen_notes) ,Andy 本人可能在 Obsidian 上发布了常青笔记,将上面的笔记转为了 Obsidian 库:, 也可能是 Anthony Gold 获得授权后转置的

注释 [10]:使用 Obsidian 插件 switcher++ 实现 Vscode 的符号搜索: 我给了快捷键 Cmd + R,呼出搜索框,直接是文件名模糊搜索, 输入 `@` 触发当前文件内搜索 Heading, 输入 `#` 触发全库内搜索 Heading

注释 [11]:对卢曼的 “枢纽笔记” 的说明: [The Money Is in the Hubs: Johannes Schmidt on Luhmann’s Zettelkasten • Zettelkasten Method](https://zettelkasten.de/posts/zettelkasten-hubs/)

全文完
本文由 简悦 SimpRead 转码,用以提升阅读体验,原文地址