OneNote 十年:笔记的新生

我使用 OneNote 做笔记已有十年了。最开始接触,纯粹是因为它作为 Office 的捆绑软件,遂开始摸索,不过很快就放弃了 —— 因为它依赖 OneDrive 同步数据,而在 2015 年左右 OneDrive 和 live.com 就已处于半封禁状态,使用体验很差:同步图标一直在转圈,并且跨设备更改总是报冲突 —— 大概是因为同步速度慢的原因。对我来说,OneNote 的初体验也并不优秀,相比较基于文件夹管理 Word 文档,OneNote 的备份和传递都很麻烦,充其量也就是一个多页面的 Word 文档软件而已。就这样陆陆续续的过了一两年,零散的做了些笔记,就再也没有对它提起兴趣。

但这并不是故事的全部,我已记不清什么时候又重新拾起了它,可能是 Word 文档越来越多,坚果云同步越来越繁琐之后,OneNote 的文档聚合能力变得更有吸引力;而或是通过论坛和贴吧,我知道了世纪互联这个 Office 中国特供版的 OneDrive 和 OneNote 同步速度更快之后;而或是我发现 OneNote 里能拖拽添加任意文件,且对中文分词搜索甚至是图片内容搜索支持的很不错的时候。总的来说,从 18 年开始我便每年付费购买世纪互联的 Office 商业基础版,就为了使用 OneNote 和 OneDrive,迄今已有七年时间。

每隔一段时间,我就会被其他的笔记软件吸引,包括最早的块编辑 Notion,支持可编程性的 Logseq,甚至我自己基于 Jupyter Notebook 搭建了一套笔记系统,但最后,还是回到了 OneNote。在大概 18 年的时候,我沉迷于将笔记和书籍电子化,把所有纸质书基本都迁移到了 Calibre,把笔记在 GoodReader、GoodNote、Notability、MarginNote、OneNote 之间来回折腾,探索过基于 Apple Pencil 的纯墨迹笔记、批注,这场轰轰烈烈的运动卓有成效,Calibre 书库从本地迁移到 NAS,现在直接上云,包含了八百多本藏书。但墨迹笔记“运动”基本宣告失败,一是可读性差,其次是可搜索性查,再其次,大量的墨迹占据空间很大,不容易迁移、整合,这对于我来说是致命的。总的来说,我后来又花了大概三四年的时间,把之前的墨迹笔记整合为纯文字笔记,但至今还有些笔记使用墨迹这种方式存在 —— 没有整理的原因很简单,因为当时做的笔记现在没有用武之地,大部分技术都过时以至于不需要和新知识、经验整合,比如 JavaFx、Scala 等。

OneNote 的魅力,对我来说,不在于基于笔记本、分组、标签、页的组织架构,不在于几乎全能的搜索体验,不在于对于文本、墨迹、图片、Office 文档、墨迹的支持,不在于跨 Windows,macOS,iOS 和 Android 的跨平台可用性,不在于云端同步功能 —— 而在于它提供了一种机制,允许我将知识系统的归于一处,并且在以年为单位的工作、生活和探索后,将新的知识、经验以及相近的知识和之前的笔记合并、链接,形成分门别类的知识体系。

基于这种“整合”的能力,我经常出于兴趣或其他原因在某项技术探索前期创建笔记,随后静置,可能是半年或一年后,当完成了某个项目,需要将项目的经验抄录留存的时候,回头整理之前的笔记,添加自己的实战经验。而或读到了相关的书籍,有了新的体会,便回过头去修改和整理之前的笔记,迁移或合并标签、页和内容。我总是喜欢在这样的时候,在笔记的末尾留下我更新笔记的时间线 —— 这很有成就感,比如下面是我的 JDBC 笔记记录:

2018-10-04 完成基本的 JDBC 学习
2018-10-05 完成大文件、预处理、事务、批处理、DAO 接口的三种实现部分
2018-10-06 撰写本文
2025-01-03 删减过时技术,整理文档格式
2025-01-04 增加了 Spring Data JDBC 的使用经验和 DAO, DTO, DRO, VO, Req/Response 类型实践
2025-01-08 增加了对于 Spring Data JDBC 的理解(关于 DTO、DRO 和 VO)

我前些日子做了一个 Spring Boot Kotlin 的项目,闲暇时候,回过头去将 Spring 笔记中涉及 XML 的全数删除,并且根据趋势,将其和 Spring Boot 整合起来,下面是 Spring、Spring Boot MVC 的笔记记录:

2019-01-04 撰写本文
2019-01-17 更新 Cros-Mapping 部分
2021-04-22 更新和重写了大部分内容,添加了源代码解析和内部原理探讨部分
2025-01-14 优化布局,合并章节

还有 Kotlin 的学习笔记,坦白说,自从 21 年入门这门语言以来,我并没有深入了解它,直到现在有了项目经验,回过头去才体会到其某些设计理念:

2021年5月13日 《Kotlin 实战》学习
2025年1月8日 补充和完善了内容,重新调节了章节

这种例子举不胜数,我前些日子统计了下,十年以来,承载我应用技术的笔记本,现在已经有 14 个分区,630 页笔记,其中大部分 1 ~ 3 页就对应着一本 200 ~ 400 页技术书籍的知识密度,横跨前端、后端和原生以及跨平台的客户端和系统编程领域,包含 JavaScript, TypeScript, ClojureScript, Java, Kotlin, Scala, Clojure, Rust, C, C++,Python, Go, Lua,Swift,Dart 多种编程语言、框架、编译工具和库生态。而承载我计算机科学敲门砖的笔记本,现在也有 8 个分区,230 页的容量,其中包含着我攻克 CSAPP、OSTEP、SICP 等大部头“巨著”的艰辛经历。

当然,实际创建、编辑和修改的分区和页更多,大部分都随着时间逐步合并、废弃、删除和整合到其他页面中去了。某种情况下,这似乎类似于《黑客帝国》中的虚拟世界,每间隔一段时间就会出现一些“觉醒者”,需要发动一场革命来重置系统:很多知识、技术和信息在做完笔记之后就沉寂了,但这并不意味着它们没有价值,它们需要的只是时间,以及一个相关性知识和经验需要补充的机会,在这种机会出现的时候,这些文字便迎来新生,和新的知识、经验整合,删减过时和理解错误的内容,并焕发新的生命力。当然,等不到机会的笔记也有,它们可能需要更长的时间来重获新生,我的笔记系统至今还有 2017 年左右自己在大学课堂上做的笔记、汇报的 PPT,虽然在可见的将来,它们被整合以及重新拿起的概率不大。

我觉得这是 OneNote 的意义之所在,它并不像一个炫酷的,支持录音、高级图形、墨迹的玩具,而仅仅是一个不起眼的线装活页册,它对用户的价值完全取决于其承载的内容,以及这些内容对于用户的现实用途,以及整合新知识、技能的重新回忆的价值

以此文献给相遇十年的 OneNote。

备注:OneNote for Windows、OneNote 2024 和 OneNote 365 的选择,OneDrive 和 OneDrive for Business 的选择。我大概有三四年的时间,使用 OneNote for Windows,一方面,OneNote 传统的界面功能太复杂,在多个笔记本、分区组、分区和页面之间的跳转并不方便。另一方面,OneNote for Windows 的使用体验更流畅。但现在我使用 OneNote 365,即 Office 365 的捆绑组件,因为在 Windows 下,OneNote for Windows 不支持备份,且字体渲染不支持 MacType,锯齿明显,而 OneNote 365 之前觉得功能复杂,现在隐藏了选项卡,觉得还好,此外 OneNote 365 对于快捷键的支持很棒,包括快速访问工具栏,我经常需要使用表格绘制水平放置的文本和图片,但不想要显示网格线,通过快速访问工具链,一个快捷键 Alt + {1,2,3} 即可实现动作。对于 OneDrive,我一直使用世纪互联的 OneDrive for Business,不含税的价格大概每年 400 多,包含了 Office 商业基础版的功能。

对于搜索,在 Windows 平台我推荐 PowerToy,其支持类似于 macOS 的快速搜索框,通过 Alt + Space 唤出,其中可对于 OneNote 笔记进行搜索,搜索能力和 Ctrl +E 类似,支持文本内容和图片内容等索引数据处理,配合 Everything 使用起来非常的棒。