zenote我的极简笔记

我一般把笔记按照结构分成两类,一种是树状结构,一种是平铺类。

树状形态的笔记之间互相有不同的节点隔离,且有先后顺序。这种结构的笔记可以帮我快速在脑海中回忆起知识点的发展过程,并且构建出整个相关知识的地图。有了地图之后我就能明白,大概哪部分的知识的前后有缺失的地方,就可以沿着知识树一直往前查来解决。

而平铺类的笔记则更多的是faq的问题。高频率的问题经常出现,但是你又不想费劲去做分类,所以一般出现一个问题就记一个。也不会和以前的知识点去做关联,只要把所有问题的笔记混合在了一起就可以了。再碰到类似的问题,就通过关键字去找,找到之后因为前后没有相关联的笔记,也不会另外做相关问题的联想,所以解决完问题也就结束了。

我当时使用的笔记类软件的路线就是zim到onenote,这两个都是可以构建自己的树状笔记,不过后续都因为笔记越来越多导致的性能问题被我弃用了。后来我仔细想了以下,我在笔记中维护了树状结构,在我实验这些笔记的代码库中也维护了这么一份结构,有时候经常会出现不同步的问题。

zenote我的极简笔记.org_20240409_122256_MqFBC4.png

zenote我的极简笔记.org_20240409_122333_E0zgsQ.png

所以我就索放弃了树状的笔记,基于emacs的org和dired构建了一个非常简单的zenote。其实就是把dired把笔记目录在侧边栏打开,然后添加一下vim风格的jk移动的方式,选择笔记来记录问题的解决方法。

不过后续发现dired在文件多了之后频繁自动刷新,以及对文件后缀的处理,会卡死emacs。所以后续我自己构建一个侧边栏buffer,只显示目录下所有的org文件,并且把org这个后缀隐藏掉,这样就实现了我所要的笔记列表。

zenote我的极简笔记.org_20240316_192828_OkvivU.png

打开目标目录的笔记们

(zenote-tree-open "./note")

快捷键

`j`: Move to the next note.
`k`: Move to the previous note.
`d`: Delete the current note (with confirmation).
`D`: Delete the current note (without confirmation).
`r`: Rename the current note.
`i`: Insert a new note after the current one.
`I`: Insert a new note before the current one
`J`: Move the current note down.
`K`: Move the current note up.
`G`: Update the zenote tree list.

同时,如果要搜索相关的问题,可以用这个alt+s来search关键字。因为整个笔记都是平铺式展开的,所以搜索笔记就像在buffer中搜索文本一样快速。但是要搜索笔记内的具体内容,我并没有做到zenote里去,而是你用了ripgrep这个外部工具进行文本内容的搜索。

就这样笔记的侧边栏列表+buffer内笔记标题的搜索+org自身语法特性就构成了我基本想要的笔记功能了。不过后续也是准备加入树形结构的功能,把笔记作为节点分类到另外的笔记下面,就像下zim一样。不过目前我个人使用上已经足够用了,所以暂时也没动力去做。