0005 往事今何在

笔记多了搜索是一项必须的技能,不过搜索并不是只有关键词一种方法。

前面讲的标签就是一种很重要的方式,我从标签索引页点击一下,就可以进入对应的查询,查看所有相关内容。

当然,直接在文件结构里翻查也是,检索文件嘛。

如果你的笔记够多,那么最好学学更高级的搜索语法,其实也不难,把问题说清楚就行。这里是官方的帮助文档。认真读一遍,尝试几次就能写了,十分钟的学习来提高搜索效率还是很值得的。

如果没有那么多笔记,建议先去做笔记吧,没有积累,光学技巧,就只是花里胡哨的。

至于英文文档,基本高中英文水平就能读了,而且还可以借助各种翻译工具,理解下来应该没啥问题。这都不想做就也没必要继续了。虽然可以等别人嚼过的(翻译的),但是软件更新了可能功能有变化,这时候肯定是官方文档最及时。

如果上面没能劝退你,并且你也学习了一下搜索语法,大概理解了一些,那么我们可以继续了。

一个情况:我经常会进行某个查询,我能不能收藏这个查询,要不然一次次输入太麻烦了。

写一个代码块,把语言标记为 query,内容就写你的查询,然后预览,你会看到它把查询结果直接列在笔记中了。

在某个文件夹中查询某个标签的内容.png

这样可以在某个路径(path)下查找具有某个标签(tag)的内容。

所以,就是把你要的查询讲明白给软件听。

这里涉及到一些细节:

Markdown 的纯净性

最基础的 Markdown 语法是非常简单的,当然可以实现的功能也非常少。我的理解,它核心的思路是纯键盘快速输入,同时具有简单格式标记。这很适合用作笔记,但面对复杂场景就变得非常羸弱。

有人觉得实在难以满足,于是语法有了扩展,比如表格、待办,确实在一些场景下这些东西是很常用的。但是用纯文本去书写表格的体验我不敢恭维。不过这些语法基本上已经被大家认可并兼容。问题也不大。而且在纯文本状态下的可读性也不低(表格比较简单的情况)。

还有一种是用代码块来实现的增强,比如流程图的 Mermaid,数据图的 charts 等。它们和上面的查询一样,用的是 Markdown 里面标准的代码块,只是标记为特定的语言。在支持的情况下,这些代码会被渲染成特殊的样子,如果不支持,则以普通代码形式显示。以代码形式显示的时候可读性并不高,好在不影响其他内容。

我前面说过我的笔记尽量不平台依赖,可以随时更换软件。这就要求保持语法的纯净,不乱用不规范的私有的语法。Query 语法是 Obsidian 特有的,我只在一些入口笔记中使用,这样更换软件不会带来多大的影响。

当然这只是我自己的原则,在这里提醒各位有这样一种坑,而你可以根据自己的情况设定自己的原则。

更强的查询

Obsidian 有一个插件 Dataview,可以实现非常厉害的查询。用法和上面的 query 类似,也是代码块,不过语言标记为 dataview,然后使用它自己的 query 语法,详情可以在它的帮助文档中阅读。

确实,有点复杂,毕竟为了强大嘛。然而,这个插件支持直接使用 JavaScript 语法,这对于会 JS 的同学来说就几乎没有学习成本了,一下子如鱼得水。所以我日常使用这种方式,后面也会分享一些查询代码,并做讲解。