使用 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/...

相关推荐
摸鱼的春哥19 分钟前
去他喵的极客,我只是个臭码农,一点也不酷
前端·程序员
JaxNext13 小时前
成为谷歌开发者专家,也成为儿时心中的侠客
前端·程序员·开源
机器瓦力16 小时前
开发突围:该换电脑了
flutter·react.js·程序员
京东云开发者1 天前
京东广告创意:高质量创意生成和千人千面的创意推荐
程序员
京东云开发者1 天前
【内部业务支撑&前瞻技术布局】One4All下一代生成式推荐系统
程序员
京东云开发者1 天前
大模型在软件测试中的应用论讨
程序员
Goboy1 天前
从零开始的NLP处理实践指南
后端·程序员·架构
PBitW2 天前
掘金活动助手!帮拉P
程序员·投资