Back to Blog

Obsidian 入门23:别让待办烂在笔记里!用 Dataview 自动汇总你所有的 TODO

林小卫很行

这是一个「Obsidian × AI」系列。

我会从最基础的认知开始,慢慢写到资料整理、写作工作流,再到怎么把 AI 接进来。

如果你还没看前一篇,可以先看 [[Obsidian 入门22:消除代码恐惧!给你 3 段直接复制的 Dataview 代码,打造全自动仪表盘]]。


在上一篇教程里,我们请出了 Obsidian 里的“真神”插件——Dataview,并且用 3 段直接复制的“神仙指令”,把散落的笔记全自动抓取到了主页。

但其实,笔记里最让人头疼、最容易丢的,并不是整篇的笔记,而是随手记下的待办事项(TODO)

回想一下你真实的记录场景:

  • 开会做记录时,你随手敲了一个 [ ] 找设计确认海报
  • 写日记时,你顺手写下一句 [ ] 明天记得交电费
  • 跟进项目时,你又在项目文档里加了一条 [ ] 周五前发周报

几天后,当你打开满屏的文件夹,你还记得这些散落在几百篇笔记各个角落的 TODO 吗?它们就像烂在抽屉角落的便签,直到你因为漏事被老板问起时才突然惊醒。

有人说,为了防止漏事,为什么不用专门的待办软件(比如 Todoist 或滴答清单)?

专门的软件当然好,但在我们记笔记、写会议记录的过程中去新建任务,会打断我们的心流。最舒服的状态,是在记笔记时顺手敲下一个 [ ],然后就不管了,因为你知道,它会自动跑到你的面前排队等你处理

今天,我们就用 Dataview 的大招:TASK(任务)视图,来帮你打造一个全自动的任务控制中心。

image.png|400

依然不需要学复杂的语法,依然是纯复制粘贴


为什么 Dataview 能跨越文件夹找任务?

在 Obsidian(以及所有 Markdown 软件)里,待办事项有一个统一的独特标志,那就是: - [ ] (一个减号、一个空格、一个方括号、再加一个空格)。

这不仅仅是个图形,它是一个结构化的暗号。

当你给你的自动化小秘书(Dataview)下达了 TASK 的指令,它就会像一台超级吸尘器,瞬间扫过你库里的每一个文件夹、每一篇笔记。只要看到带有 [ ] 的句子,它就会通通吸过来,并且整整齐齐地摆在你面前。

image.png|400

更神奇的是,你在这个汇总的视图里点击打钩变成 [x]原始的那篇笔记里的待办事项也会同步被打钩!这是真正的双向同步。

接下来,我为你准备了 3 段最实用的“任务吸尘器”指令。


指令 1:全库未完成任务大搜捕

适用场景:你平时记录比较随意,没有严格的文件夹分类,想把整个库里所有还没打钩的待办事项全部捞出来,放在首页的仪表盘上,每天挨个清理。

请直接复制以下代码:

TASK
WHERE !completed

怎么用?

  • 把这段代码复制到你的主页(或者每天打开的看板笔记)里。
  • 这里的代码一个字都不用改。!completed 的意思就是“未完成(没有打钩)”。只要它一天没被打钩,它就会像一个甩不掉的小尾巴,天天在主页盯着你,直到你消灭它。

CleanShot 2026-04-12 at 16.33.37.gif|400


指令 2:只看特定标签的未完成任务(如 #工作)

适用场景:上一个指令虽然爽,但如果你把生活和工作的 TODO 都混在一起,看多了容易焦虑。你可能只想在办公时,看到打上了 #工作 标签的未完成任务。

注意!这里有一个新手最容易踩坑的地方。打标签有两种习惯:

习惯 A:把标签打在文章上(比如会议记录的属性里带有 #工作)。 这时候,即使具体的任务后面没有跟标签,只要这篇笔记带有 #工作,里面的所有任务都会被抓出来。 请直接复制以下代码:

TASK
FROM #工作
WHERE !completed

CleanShot 2026-04-12 at 16.52.45.gif|400

习惯 B:把标签直接打在具体的任务后面(比如 - [ ] 给张总发邮件 #工作)。 这时候,你只想抓取带有这个标签的具体任务,而不受文章标签的影响。 请改为复制这行高级代码:

TASK
WHERE !completed AND contains(tags, "#工作")

你要改哪里?

  • #工作 换成你自己的标签(比如 #重要#买菜)就行。根据你自己的记录习惯,选择上面的一段代码复制。

指令 3:只看某个具体项目的任务

适用场景:你正在跟进一个复杂的大项目,这个项目有自己专属的文件夹(比如叫“01-官网重构”)。你不想看其他杂七杂八的事,只想把这个项目文件夹里散落的 TODO 集中起来。

请直接复制以下代码:

TASK
FROM "01-官网重构"
WHERE !completed

你要改哪里?

  • "01-官网重构" 换成你真实的文件夹名字。注意,两边的英文双引号千万不要删掉
  • 划重点(极易踩坑):如果你的文件夹是嵌套在别的文件夹里面的(比如 Learn/Obsidian_AI_Course/01_模块一_认知重构与极简起步),你不能只写最后那个文件夹的名字!你必须把它的完整路径写出来。 正确的写法应该是这样:
    TASK
    FROM "Learn/Obsidian_AI_Course/01_模块一_认知重构与极简起步"
    WHERE !completed
  • 这段代码非常适合放在某个具体项目的“项目主页”或者“复盘笔记”里,让你一进去就能看到这个项目还有哪些事没做完。

CleanShot 2026-04-12 at 17.03.49.gif|400


总结与终极预告

你看,只要把待办事项写成标准的 - [ ],再配上这几段简单的代码,你就可以在任何一篇笔记里毫无心理负担地写下 TODO。因为你的小秘书会帮你记着,绝不漏掉一件。

通过这两篇教程,我们已经用“拿来主义”解决了一大半的自动化需求。但肯定有聪明的朋友会问:

“如果我想更进阶一点,比如想查『只要上周一到周五的、并且打上了 #摸鱼 标签的未完成任务』……这些需求千奇百怪,你给的代码套不进去怎么办?我也背不下那么多语法啊!”

如果复杂的代码我们实在背不下来,那就找个不要钱的程序员帮我们写吧!

请期待下一篇(也是 Dataview 三部曲的终结篇):不会写 Dataview 代码?教你一招,让 AI 成为你的专属“程序员”

我们下期见。

进阶阅读

如果入门系列让你对 Obsidian 产生了兴趣,这里有几篇我自己折腾出来的实战经验: