4 年写了 2000+ 卡片后,我的笔记心得
刚刚统计卡片盒,发现从 2018 年初开始以卡片为单位写笔记,如今已经累计 2000 多张。
一路过来我都记不清用过多少笔记工具了:
- 印象笔记
- 为知笔记
- Simplenote
- OneNote
- Bear
- WorkFlowy
- Ulysses
- Obsidian
- Logseq
- Standard Notes
- nvALT
- TaskPaper
- The Archive
- ……
每一个都当作卡片盒工具严肃使用过,比如,我曾是印象笔记、Bear、WorkFlowy 等的年费用户,是 Obsidian 早期的 Catalyst License 用户。甚至曾经有一年半左右,我所有笔记都在同一个 TaskPaper 文件里。
每换一个应用,自然也就迁移一遍笔记库,又是一番告别效率、拥抱工具,好不折腾。
一路踩坑无数,如今复盘,我总结了这几点心得。
*
一张卡片,少写一点。
阳志平在《卡片十二问》一文,将卡片本质归纳为「最小信息单位」,指出以卡片为基础来组织信息,写起来认知负荷小,日后复用也快速方便。
几位卡片写作集大成者,如阳志平、梅棹忠夫、尼克拉斯·卢曼,都提过一点要求:一张卡片,只记一件事。
不过,怎样算「一件事」?
确实不好分,梅棹忠夫在《智识的生产技术》给出的办法是:如果担心卡片内容多了,那就再细分,宁愿每张少写一点。
他指出,初次采用卡片法的人会失败,大都是因为在一张卡记了太多太杂内容,与其如此,还不如痛下决心,把一堆内容,细分为一个个小事项,反倒能成功。哪怕一张卡片仅写一行,也不必在乎。
如他所说:对卡片过于吝啬,就无法使用卡片。
所以我的经验是,宁写少,不写多。如果疑惑某张卡片是不是写多了,那就拆成两张。
这样做也能避免卡片内容过长,导致卡片库到数千级别时,搜索、回顾、修改,都因为牵扯过多而难以进行。
*
写卡片时,放大量级。
具体来说,是写卡时,不只思考如何写好这一条笔记,而是把笔记所涉及的各个元素,都放大几个数据量级来考虑。
比如,通常笔记是写给我自己一个人看的,行文如何似乎无需讲究,自己能看懂就行。但如果放大量级来考虑,就还需思考:如果还要给其余十人、百人、千人看呢?这些人能否一眼看到卡片,就能知道我讲的是什么?
同样,一张卡片,现在的我能看懂,但把时间元素放大量级:如果要求是十年、三十年后,我到时仍能看懂呢?
有的卡片,此刻的我能轻松明白,是因为还熟悉当前语境,但五年十年二十年后,面对卡片,我实际已同陌生人无异。
如今写卡以高几个量级的标准来要求,是帮助五年十年后的自己来理解卡片。
*
使用通行文件格式,通行标记语言。
不管是换电脑、换系统、换应用,笔记要尽可能都能用。换言之,如果一个文件格式需要特定的 app 才能打开,就不用。典型如 Bear 的 bearnote 格式。
我的想法是:强如 Microsoft Word 都难以跨 20 年、30 年兼容从前的老文档,何况是当今的独立笔记应用呢?
而且,笔记不绑在特定应用,这其实也是放大量级考虑之后会得到的结果:普通的卡片库,是依托于某个特定的笔记 app,但一个足够稳健的卡片库,最好是任意笔记 app 都能打开、编辑、查看。
如果能通过这一关,说明卡片库的架构足够稳健,有如流水,随物赋形,app 从此只是容器,服务笔记,而非反过来。
不过这还不够,因为,虽然文件层面足够稳健了,但在内容层面,还不够自由。
还得加一条:使用通行标记语言,比如通行版 Markdown。这样随便用哪个编辑器打开笔记,都能保留自己的标记信息。像 Bear 的 Markdown 就不够通行,因为有 #a/b/c#
这样别家无法识别的标签格式。
结合以上两个「通行」,我觉得纯文本 + 标准 Markdown是目前最可行的答案。
Markdown 带来的标题层级、引用区块等功能,能满足平时笔记格式需求,区分别人说的和自己说的,对人类阅读、机器可读同样友好。而且,再往后三十年,Microsoft Word 到时大概也会有兼容 2020 年 DOC 文档的难题,但 TXT 定可与互联网同寿。
这样的笔记库,不管文档数量是几百还是几千,不管是放 iA Writer、The Archive 还是 Obsidian 甚至 Emacs(是的我也试过),一键打开,立马能用。
*
把笔记看作流水。
如今比较通行的做法是,先记临时笔记(fleeting notes),之后再逐一整理为正式笔记,或者说永久笔记(permanent notes)。也就是说,多数笔记会在「临时」状态停留一段时间,然后才被整理完善为正式笔记。
这正是困扰我的地方:抱着「临时变永久」的想法,我整理笔记时,会隐隐想要写到完美,认知负荷骤然增大。这也导致我之前有大量临时笔记堆积,整也整不完。甚至都因此不大愿意写新卡。
但我慢慢开始觉得,不应该是这样的。对我来说,重点是去写,而不是写完美。笔记不应该是「临时」或「永久」的二元状态,而应该是流水的状态。
笔记不应该有转正或完成的那一天,每条笔记,都应是随着阅历不同、理念不同、觉悟不同,而随人成长的。
笔记从此不再具有 permanent 状态,不再有「临时」「永久」之分,卡片从入库开始,就只具备一个不变的身份:随我一起流动的卡片。
不再标记「临时」「完成」两种状态后,我发现平时写卡,出现了几个我喜欢的变化:
首先是我避开了以前常掉的「认知吝啬鬼」陷阱。心理学家斯坦诺维奇指出,人的大脑是个认知吝啬鬼,凡是能省力气的地方,绝对不多花力气。如果心里已经把某条笔记定为「永久」状态,往往就不会再花心思去思考,因为觉得思考已经完成了。这就让我一些多年前的卡片,始终停留在多年前的样子。
如今变换思路,每一张卡片都是随人流动的。有时回顾卡片,看到三年前写的卡,我也会当作新卡来增删修改,也会问问自己,有什么新的想法吗?于是常常有新收获。
想必你也注意到了,这正是第二个变化:我把「随机回顾」提到了和「撰写新卡」同样重要的位置。通过持续的、大剂量的「随机回顾+不断修改」,来替代原来的「临时变永久」。如梅棹忠夫所说:「比分类远更重要的是,要反反复复翻阅卡片,不断取出卡片,进行各种排列组合。」
每次随机翻出一张卡片,我就复习一遍,如果发现有新想法,或者有什么要修改的,就立马开改。对许多陈年老笔记印象也更深了。
我想,这大概是流水态笔记的另一个优势:每次看笔记,面临的任务是「增量修改」,而不是「改到完工」或「做到完美」。增量的任务更轻松,认知资源更充足,不容易拖延,能出活。
那具体怎么随机翻阅呢?
因为本地文档类的笔记应用,除了 Obsidian 有 Random Note 插件,别的似乎多数不自带,难以实现随机翻阅。
我的办法是,借助终端。以 macOS 为例:
1)打开电脑的 Terminal 应用;
2)键入命令 cd my/folder/
,进入本地笔记库;
3)键入命令 cat $(ls | shuf -n 1)
,回车,完成。
第三步的意思是,ls
列出文件夹内所有笔记文件,然后通过 shuf
来随机选出一个文件,再交由 cat
把内容展示出来。
一个最基础的随机回顾就实现了。另外,如果你跟我一样用 fish shell,最后一条命令要改为 cat (ls | shuf -n 1)
。如图:
还可以有几个进阶操作:
操作一:安装 mdcat(https://codeberg.org/flausch/mdcat),以支持图片和 Markdown 格式渲染,然后把命令里的 cat
改为 mdcat
就可以了。
操作二:把整个命令绑定到 aText 或 TextExpander,实现快捷输入。或者,更好的办法是,打开 ~/.bashrc
把命令绑定为 alias(详见下段)。
操作三:为编辑助个攻,实现翻看笔记后,一键直接编辑。分两步:
步骤一:随机翻看一条笔记,同时复制笔记名称。以 Bash 为例:
function nr () {
clear
dir_path="my/folder/"
cd $dir_path
entry=$(ls $dir_path | shuf -n 1)
mdcat $dir_path$entry
echo $entry | tr -d '\n' | pbcopy
}
这一块实现的是,翻看一条笔记的同时,把笔记文件名复制到剪贴板,以支持后续编辑。
上面代码中,function
后面的 nr
是我给这个功能命的名,你改成 abc
也没关系。把这一框代码粘贴到 .bashrc
保存后,重启终端,再输入 nr
,就能随机预览一条笔记,并把所预览笔记的文件名复制到剪贴板。记得把 my/folder/
改为自己的卡片盒路径,末尾的 /
别忘啦。
效果如图:
步骤二:刚刚随机翻看的笔记,已经复制了文件名,现在要在编辑器打开。代码如下,仍是以 Bash 为例:
function edit () {
note=$(pbpaste)
# vim $note # 如果惯用 Vim
editor="Byword"
open -a "$editor" "$note"
}
editor
后面的 Byword
是我举例用的编辑器名称,你可以随意改为自己用的。
同样,还是把代码复制到 .bashrc
,然后保存,重启终端,就能在随机回顾完某条笔记后,输入 edit
修改了。
*
「怎样记笔记」可能会是每个学习者的终身命题。我越来越觉得,不管用什么工具、什么方案、什么编辑器,或许都应服务于一点:让自己更愿意去写笔记。
希望每次调试,我们都离「愿意写」更近了一步。