我是怎么使用 Obsidian 的

Obsidian 的哲学和缺陷

在过去,我不算是 Obsidian 的用户,它过于复杂,以至于需要我耗费不少精力在做笔记之外的事情上,这种折腾使我觉得麻烦。所以网络上流行一张梗图——最聪明和愚蠢的人使用简洁的 Apple Notes,它的功能不多,但几乎没有摩擦成本,用户可以将时间投入在写笔记上;而处于中间水平的人在不断地捣鼓各种笔记软件。

但是 AI 的发展彻底改变了我对 Obsidian 的态度,Obsidian 的 vault(仓库)管理逻辑恰好和 agent 的以项目为单位的逻辑一致,所以我可以直接让 agent 帮我处理仓库;与此同时,AI 还可以快速帮我写出便利的 Obsidian 插件,以便满足自己的小众需求。AI 让 Obsidian 这样的低下限、高上限的自由软件变得更为强大。

Obsidian 的哲学

如果要高效地使用 Obsidian,相比技术上的探索,更重要的是理解文档管理的哲学。

Obsidian 的 CEO 在他的博客站里写过一篇他的使用哲学的文章 How I use Obsidian,我的理念和他相似。不过相比他的使用方法,我会更多地让 agent 介入对仓库的管理。

为了高效地使用 Obsidian,需要打破以单个超大文件、文件夹整理为中心的文档处理思维。取而代之的是 frontmatter 和 agent。

1. 利用 frontmatter

Markdown 的 frontmatter(前置元数据)是放在 Markdown 文件最开头的一段「元数据配置」,用来描述这篇文档具有什么样的属性。在 frontmatter 的后面,才是 Markdown 的征文。

例如,这篇博文的 frontmatter 是这样:

---
title: 我是怎么使用 Obsidian 的
title_english: How I Use Obsidian
description: Obsidian 的哲学、agent 协作、缺陷
date: 2026-10-01
date_updated:
category: ""
tags: []
cover: "../attachments/how-i-use-obsidian-cover.png"
draft: false
hidden: false
comments: open
comment_id: "post-ae8ffbc6-9bdd-4f19-a6d2-de2b367032ac"
---

借助 frontmatter,文档被进行了格式规范的标记,这样一来,就完成了对文档的分类,并且后续可以通过编程来实现对文档的整理。我的博文 markdown 文件的 frontmatter 中的标题、描述、日期等信息还会被处理为博客站里的信息。

2. 避免文件夹嵌套

文件管理对人的大量折磨里,一大核心折磨是文件夹的繁琐——大量的文件夹数量使得人需要思考把文件放在什么文件夹里;当文件夹出现嵌套时,光是在这层峦叠嶂的文件夹结构里花样游泳就要花上不少的时间。

在 Obsidian 的哲学里,良好的文件夹结构是扁平化的,应当减少对文件夹的使用,同时尽量使用 frontmatter 来标记文件,这样就可以避免文件夹带来的烦恼。文件夹意味着一种固定的结构,而良好的 frontmatter 意味着用户可以拥有随心所欲的认知结构。

我的博文的文档管理目前践行了这样的哲学,在博文的大文件夹下,只有 4 个小文件夹,分别用来放置博文、博文模版、媒体、附件。小文件夹里不再有其他文件夹。

blog/
├── AGENTS.md
├── attachments/
├── media/
├── posts/
└── template/

Obsidian 可以设置默认的新文档所属文件夹和附件所属文件夹,自动化文件的放置

3. 设计良好的模版

上文提到了使用 frontmatter 来标记文档,但是在新建文档时,没有人想把这些 frontmatter 来手动敲一遍,甚至连拷贝粘贴都是麻烦的。

比较好的实践是将模版放在一个文件夹里,然后在 Obsidian 里将这个文件夹设置为模版文件夹。下次新建文件时,就只需要按下快捷键,然后选择所需的模版,frontmatter 就被自动填写到文档内,只需要人工再填写一些核心内容就大功告成了。

Obsidian 的模版文件夹设置

对于不同类型的文档,需要不同的 frontmatter,所以也就需要不同的模版。例如对于游戏记录所对应的模版,我在 frontmatter 里增加了用来记录发售年份的 release_year、用来记录游玩设备的 device、用来记录购买费用的 price,以便符合记录游戏时的需求。

---
type: Game
date:
date_purchase:
date_completion:
writer:
participants:
title:
title_english:
title_japanese:
creator:
release_year:
image:
price:
device: 
---

除了记录游戏时的模版,我还为书籍、动画、物品、电影、日记准备了不同的模版。Obsidian CEO 分享过他的模版,如果你需要现成的模版,那么可以从他那里下载。

4. 考虑拆分文件

在过去,我写日记的方式是,使用一个超大的文件来写一年的日记,来年再创建新的文件,并把这些日记放在一个文件夹里。管理一个超大的日记文件是麻烦的,如果把新的日记写在下面,每次都需要翻到文档的最下面才能新写;如果把新的日记写在上面,总体上又怪怪的。

在 Obsidian 的哲学里,日记应当被按日拆分为独立的文件,然后用 frontmatter 来标记每天的日期,这样一来,每天的记录都是轻便的。我现在每天新开一个文档写日记,日期和文件名通过插件自动生成,减少了「写上今天日期」这样的无意义工作。

拆分文件还是为了便于 agent 的发挥。有过 agentic coding 经历的人都知道,随着文件行数的增加,agent 的能力会迅速下滑。因此,较小的单个文件大小可以让 agent 保持高效。在原子化的日记结构下,每份文件的 frontmatter 还使得我可以借助 agent 简单地做出 heatmap。

Obsidian 与我的日常

Bases 与自定义视图

上文提到,「以单个超大文件、文件夹整理为中心的文档处理思维」是糟糕的。但是在 Obsidian 的哲学下,文件的数量众多,文件夹结构扁平,这导致了不适合使用传统的方式查看文件内容的问题。

Obsidian 对此的处理方式是 Bases,它可以指定的筛选和排序方式来展示文档。例如,如果我想看到我的所有电视剧记录,那么需要筛选所有类型为电视剧的文档,然后让它们按照时间从新到旧排序。我让 agent 根据影片名称抓取对应的海报,并在 frontmatter 里设置了属于海报图像的一行,于是就可以在数据库视图下将海报也展示出来。点击海报则可以前往对应的文档。

我的电视剧数据库

由于 Obsidian 巨大的自由度,除了使用它自带的数据库功能,还可以让 agent 来写代码,这样就可以打造自己喜欢的视图。例如我让 agent 写了关于日记的 heatmap,这样一来就可以看到自己每天写日记的情况。Lia 在此基础上再修改了一下,让「点击其中的块」具有前往或创建对应日记的效果。

我的日记 heatmap

Agent 整理消费

Obsidian 现在还承担对我和 Lia 的消费的整理职能。

由于每次开启 Obsidian 进行记录是麻烦的,所以 Lia 借助 agent 制作了可以辅助整理消费记录的 Telegram bot。在完成一笔消费后,我或 Lia 会将消费的截图发送到私有的 Telegram 群组中,由 bot 完成对消费的识别和记录,然后自动在我们的 Obsidian vault 里创建对应的文件。

文件的 frontmatter 里包含了对消费名称、日期、付款人等信息的记录,等到月底的时候,我们会再进行综合的开销计算。由于在前期就注重 frontmatter 的格式规范,所以后续的计算都是便利的。

Lia 的消费整理 bot

我所使用的 Obsidian 插件

关于详细的使用 Obsidian 的技术问题,我没兴趣讲太多。Obsidian 有极为丰富的插件生态,在此我推荐 3 个插件,感兴趣的话可以自己去研究:

  • Notebook Navigator(让 Obsidian 更像 Apple Notes)
  • Easy Wikilink(用来快速地创建 Wikilink)
  • Templater(需要写代码,我用它来给文档自动命名)
  • Dataview(需要写代码,日记热力图是借助它做的)

Obsidian 的缺点

Obsidian 是神,但是它同时也是使用体验上的灾难。我觉得它没有充分地考虑普通用户的需求,以至于成为了需要折腾才能使用的软件。日常生活里,我依然喜欢打开 Apple Notes 随手写点什么。

在 2026-05-08 那天,我写了一篇《从大众视角看 Apple Notes 的优秀》的短文,下面是它的原文。

从大众视角看 Apple Notes 的优秀(旧文)

今天在 Obsidian 里安装一个让设计变得像 Apple Notes 的插件「Notebook Navigator」,它可以实现类似 Apple Notes 的笔记预览和分类,以及使用方向键来定位笔记的功能(这么基础的功能,Obsidian 居然不是原生支持的)。现在更觉得 Apple Notes 优秀了:

  • 在 Apple Notes 里点击新建备忘录,就是新的一篇备忘录,无需给文件命名(把命名的过程省略掉了)。Obsidian 由于是基于仓库(电脑上的某个文件夹)的笔记管理软件,所以无法避开给文件命名这个烦人的环节,而且 Obsidian 的默认文件名还是「未命名」,不支持原生就以固定的格式命名。目前我在 Obsidian 里使用 Templater 来半自动化命名,它会收集当前笔记的 frontmatter,并按照我设定的规则命名,但这个插件对于普通用户来说具有明显的上手门槛。

  • Apple Notes 有「智能文件夹」功能,智能文件夹是一个虚拟的文件夹,它会按照用户的设定,将符合某种标准的笔记抽象为智能文件夹下的文件。Obsidian 里类似定位的功能是 Bases,Bases 可以按照用户的设定来筛选和排序文件,功能上是类似的。但是 Bases 意味着「Bases」这一新的抽象文件,如果用户想通过 Bases 的功能找到某一文件,需要先打开 Bases 文件。Apple Notes 则没有这个步骤,因为智能文件夹和文件列表是融为一体的,没有新增一种文件类型。

  • 在文件列表,Obsidian 缺乏最基本的正文预览、通过方向键变更当前文件、pin 文件的功能,需要插件 Notebook Navigator 才能实现。Apple Notes 原生支持。

  • 在文件列表,Apple Notes 有相当巧妙的分组和排序,而且默认就是按照编辑时间分组排序——这很符合用户习惯,最近编辑过的内容,自然更有需要继续编辑的可能。分组也是很关键的设计,Apple Notes 的默认分组是「今天」「昨天」「过去 7 天」「过去 30 天」「MM月」「YYYY年」,层级合理,而且在文件列表一眼就知道这个文件是什么时候编辑过的。Obsidian 原生只能看到文件名。

  • 轻量,在 macOS 上,Obsidian 需要相比 Apple Notes 3-10 倍的内存(也许是我的 Obsidian 插件开多了)。在手机上,Obsidian 每次打开仓库都需要较长的时间,这没法满足用手机快速写点笔记的常见场景。由于每次打开移动端上的 Obsidian 都需要等待异常久的时间,所以我已经变成了只使用桌面端 Obsidian 的状态。

  • 同步的便利性,Obsidian 需要用户自己探索才能实现良好的同步。Obsidian 缺乏良好的同步手段,自带的同步服务价格昂贵,网络上比较流行的是用 github 来实现同步。而 Apple Notes 依托 iCloud,完全不需要进行同步设置的配置,而且效果也好。

  • Apple Notes 有一个「最近删除」的文件夹,被删除的笔记会放进里面,过一段时间自动删除,想要恢复的话也只需要点进「最近删除」看看。但 Obsidian 没能提供类似的入口。