使用 obsidian tasks 进行简单查询

使用 obsidian tasks 进行简单查询

本文将简单介绍如何使用obsidian tasks进行简单查询。

说明

tasks用户指南:publish.obsidian.md/tasks/Intro...

本文使用的tasks版本为:7.18.3

obsidian tasks允许在obsidian仓库中的任何地方创建任务,并且在任何地方查询任务、且更新修改等,其查询非常强大。

在查询中,需要将查询语句添加到```````tasks````中,例如:

go 复制代码
```tasks
查询语句
```

如果需要添加注释,则直接在前面添加#即可,例如:

go 复制代码
```tasks
# 查询未被结束的任务
not done 
```

前置说明

  • 在看本篇文章的时候,默认已经学会了tasks基本操作,包括创建任务、结束任务、修改任务等等。
  • 需要理解duestartscheduled等名词含义等。
  • 需要知道关于bool运算符含义,比如ANDORNOT等。

简单查询

查询所有任务

直接使用tasks便可以查看所有任务,包括已经结束、取消了的。

go 复制代码
```tasks
​
```

查询未结束的任务

在查询语句中,加上not done,即可查询未被结束、取消的任务。

go 复制代码
```tasks
not done
```

查询已经结束的任务

在查询语句中,加上done,即可查询已经结束,或者被取消的任务。

go 复制代码
```tasks
done
```

查询被取消的任务

在查询语句中,加上has cancelled date,该语句的含义是cancelled必须有值,该操作即可查询被取消的任务。

go 复制代码
```tasks
# 查询已经被取消的任务
has cancelled date
```

以树类型展示任务

如果有树类型任务,可加上show tree来展示层次关系。

例如,有树类型任务如下:

markdown 复制代码
- [ ] 总任务
    - 任务1
        - [ ] 步骤1 🛫 2025-03-23 📅 2025-03-25 
        - [ ] 步骤2
        - [ ] 步骤3
    - 任务2
        - [ ] 步骤1
        - [ ] 步骤2
        - [ ] 步骤3

使用show tree可以展示类型,比如:

go 复制代码
```tasks
show tree
```

其结果为:

关于时间的查询

tasks中,关于时间的查询,其中关键字如下:

  • in x

    将匹配x日期。

  • before x

    将匹配x日期之间的所有日期。

  • after x

    将匹配x日期之后的所有日期。

  • in or before x

    将匹配x日期之前的所有日期,包括x

  • in or after x

    将匹配x日期之后的所有日期,包括x

看起来确实很难理解,但是我将其做成了一张表,如下:

其中:

  • 其中in 2025-03-10只能匹配到一个任务。
  • before 2025-03-10可以匹配到2025-03-10 之前的所有任务,但是不包含2025-03-10
  • after 2025-03-10可以匹配到2025-03-10之后的所有任务,但是不包含2025-03-10
  • in or before 2025-03-10可以匹配到2025-03-10 之前的所有任务,包含2025-03-10
  • in or after 2025-03-10可以匹配到2025-03-10之后的所有任务,包含2025-03-10

tasks也有自己相对日期的词,如下:

  • today: 今天
  • tomorrow: 明天
  • yesterday: 昨天
  • -15 days:15天前
  • +15 days:15天后
  • next week:下周一
  • last week:上周一
  • this week:本周一

有了上述铺垫,查询起来就简单多了。

查询本周内没有完成的任务

直接查询下周一之前,但是不包含下周一即可,查询语句:

go 复制代码
```tasks
not done
starts before next week 
​```

该查询语句会查询到开始时间start为下周一之前的所有任务,包括过去的任务,比如今天是2025-03-10,恰好2025-03-09也有任务且状态没有完成,那么也会被查询出来。

查询今天之前没有完成的任务

查询语句如下:

go 复制代码
```tasks
not done
starts before today
​```

该查询语句会查询开始时间在今天之前(不包含今天)为完成的任务。

你还可以这样写:

go 复制代码
```tasks
not done
starts before +0 day
​```

查询本周内完成的任务

go 复制代码
```tasks
done
(starts before next week) AND (starts in or after this week)
​```

该查询语句是一条组合语句:

  • done: 表示已经完成了的任务

  • (starts before next week) AND (starts in or after last week)

    表示开始时间在下周一之前和和本周一(包含本周一)之后。

查询已经过期且截止日期在7天内的未做的任务

go 复制代码
```tasks
not done
(starts before +0 days) AND (due before +7 days)
​```

该查询语句和上述类似,这里不解释了。

查询所有 start 在过去 1 个月但 due 在未来 1 个月,prioritymediumhigh,且 tags 只能包含 #work#study,不能包含 #personal,同时 scheduled 不为空的任务

scss 复制代码
```tasks
not done
(starts after last 1 month) AND (due before next 1 month) AND ((priority is medium) OR (priority is high)) AND ((tags include #work) OR (tags include #study)) AND (has scheduled date) AND (tags do not include #personal)
​```
  • starts after last 1 month :开始时间在上个月之后。
  • due before next 1 month: 截止时间在下一个之前。
  • (priority is medium) OR (priority is high) : 优先级为medium或者为high
  • (tags include #work) OR (tags include #study)tags#work或者是#study
  • has scheduled datescheduled必须有值。
  • tags do not include #personaltags不包含#personal

总结

最近在使用tasks,实在是太方便了,随时随地都可以创建任务,然后查询过程中,都会被收集起来,只是新建看板查询任务列表过于繁琐,需要自己编写查询语句,不过在短暂的学习之后,使用起来非常得心应手。

wangli2025.github.io/2025/03/19/...

相关推荐
demo007x4 小时前
让大模型活在你的鼠标旁:我用 Tauri 2 + Rust 打造了一款“反直觉”的 AI 全局划词效率神器
macos·程序员·llm
程序员海军6 小时前
AI 越来越强,为什么打工人反而越来越累、越来越内耗了?
前端·程序员·aigc
badhope10 小时前
同样写 AI,为什么有的文章 549 人看、有的只有 16 人看?——我用 40 篇掘金文章的真实数据复盘
程序员
今朝唯我少年郎1 天前
Codex安全盲区代码漏洞生成实测
python·程序员
kyriewen2 天前
我用 AI 写完一个需求后才发现,最难的不是 prompt,而是验收
前端·程序员·ai编程
酷酷的逗逗乐2 天前
前端转 Agent 开发 · 第六节
前端·程序员
爱勇宝2 天前
没有 Fn 键关触控板?我做了一个双击即用的 Windows 小工具
前端·后端·程序员
程序员cxuan2 天前
跟 WebUI 说再见了,最强 DeepSeek 桌面端来了!
人工智能·后端·程序员
codigger2 天前
用 AI 写代码,你知道它会把我的代码传去哪?
ai·程序员·编程·数据安全
程序员cxuan2 天前
DeepSeek V4.1 Flash 正式发布!
人工智能·后端·程序员