Obsidian插件篇-复习回顾Obsidian_to_Anki

Obsidian插件篇-复习回顾Obsidian_to_Anki

本篇文章由复习回顾的需求开始,引出 Spaced Repetition 插件、SuperMemo、Anki 的对比,最后详细分享 Ob 集成 Anki。

起因

去年有一段时间,热衷于收集七零八碎的文章帖子。整理完了有些知识点觉得有识记的必要,于是想着在 Obsidian 中引入复习回顾的概念,由此跌入了消耗时间的无底坑。与此同时也接触了解到各种方法、理论体系,比如:常青笔记、渐进阅读等。限于篇幅与主题,本文着重于讲解 Ob 集成 Anki。

工具对比

Spaced Repetition

Spaced Repetition 是 Obsidian 插件市场中的一款间隔重复的插件。浅浅用过,但是后面了解了 Anki 以及 SuperMemo 就弃用了,适合轻需求的用户使用。

SuperMemo

SuperMemo 是一款与 Anki 类似的记忆辅助软件,它也采用了“间隔重复”的原理,但 SuperMemo 的历史更早,算法也更为复杂。我了解到 SuperMemo 还是得益于叶峻峣大佬的SuperMemo 渐进学习大型指北 系列文章。

当时感兴趣还下载了 SuperMemo18 体验了下。一番折腾,发现 SuperMemo 很强大,但是需求上与 Ob 有不少冲突且有一定的学习门槛。彼时,我的需求仅仅是在 Ob 中引入复习回顾的功能,还没想着舍弃 Ob,也自知是没有精力去折腾 Ob 和SuperMemo 两款软件的。遂选择继续使用 Ob。

但是渐进阅读、渐进学习以及认知负荷理论的诸多理念我是颇为赞同的。

Anki

Anki 是一款免费开源的记忆辅助软件,它通过“间隔重复”的原理,帮助用户高效地记忆各种信息。简单来说,根据你对知识的熟悉程度,在遗忘之前及时安排复习,从而事半功倍。

Anki 使用起来是有效果的,但是有几个缺点。

  • 一是卡片回顾起来,给我的割裂感十分严重,太碎片化了,缺少对知识的宏观把握。更适合提纲挈领后,反复温习填充细枝末节。
  • 二是卡片越来越多,脑力消耗差不多时打开手机看见软件 70+ 的红点通知,真是一种折磨。如此反人性,一两天还能挺住,及至后来,不了了之。

所有很长一段时间内,我就放弃了复习回顾这一需求。渐渐的就不折腾了,细水长流就很好。

很多时候我们都会高估了自己,一件事若是在状态最差的情况下也能完成,那么成功坚持下去才更有希望。

Ob 集成 Anki 实践

详细步骤

  1. 下载 Anki,安装 AnkiConnect

  2. 插件市场,下载安装 Export To Anki 插件

  3. 在 Anki 中,导航到 工具->插件->AnkiConnect->Config,并将以下配置复制粘贴:

     {
         "apiKey": null,
         "apiLogPath": null,
         "webBindAddress": "127.0.0.1",
         "webBindPort": 8765,
         "webCorsOrigin": "http://localhost",
         "webCorsOriginList": [
             "http://localhost",
             "app://obsidian.md"
         ]
     }
    
  4. 重新启动 Anki 以应用上述更改,并保持后台运行

  5. 设置不同卡片类型的正则表达式(见下文正则表达式设置参考)

  6. 编写测试笔记使用插件导出到 Anki 验证(下文测试笔记可直接复制测试使用)

详细可参考:ObsidianToAnki/Obsidian_to_Anki

制卡原则

原则上以本地的 Ob 笔记为主(阅读体验好、美观简洁),选用合适的格式制卡,优先选用居中分隔的制卡方式。

制卡注意事项

  • 可制卡的笔记内容修改后,卡片会自动更新
  • 制新卡时注意制成卡片的标签、牌组名称、以及扫描目录
  • 制卡后原笔记会留下一串 ID

多设备同步

制卡过程是在电脑上完成的,但是论起便捷复习还是使用手机更方便。我的方法也很简单,Anki 中导出后缀 .colpkg 的集合文件,发送到手机覆盖就行。

  • Anki 在安卓机上时免费使用的,苹果机上需付费。
  • 进度可以保留,操作也比较简单
  • 每次都需要导出文件加发送,也比较麻烦

正则表达式设置参考

问答题:
^Q: ((?:.+\n)*)\n*A: (.+(?:\n(?:^.{1,3}$|^.{4}(?<!<!--).*))*)

问答题(翻转可选):
^#+(.+)\n*((?:\n(?:^[^\n#].{0,2}$|^[^\n#].{3}(?<!<!--).*))+)

基本题:
^(.*[^\n:]{1}):{2}([^\n:]{1}.*)

如图:

感兴趣可以学习一下正则表达式。

测试笔记

// 新建笔记后复制粘贴即可
### 单行示例(基本题)

这是一个单行示例::双英文冒号后就是答案,且居中显示,但是不建立双链

### 问答题(Q&A)

Q: 这是Q1,
这是Q2
A: 这是回答语句1,支持多行提问与回复,左对齐
回答语句2,注意冒号是半角且后接一空格

### 问答题(居中分隔)

正面问题
——————
这里是回答
优点:制成的Anki卡片居中显示
缺点:并没有