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

相关推荐
十年编程老舅5 天前
二本计算机,毕业=失业?
c++·程序员·编程·秋招·c++项目·春招·qt项目
远洋录14 天前
Ethan独立开发产品日报 | 2025-04-29
人工智能·程序员·副业·独立开发·赚钱
袁煦丞15 天前
Mdserver-web让服务器自由飞翔!:cpolar内网穿透实验室第590个成功挑战
前端·程序员·远程工作
考虑考虑15 天前
go使用gorilla/websocket实现websocket
后端·程序员·go
袁煦丞15 天前
每天省2小时!这个网盘神器让我告别云存储混乱(附内网穿透神操作)
前端·程序员·远程工作
袁煦丞15 天前
AI视频生成神器Wan 2.1:cpolar内网穿透实验室第596个成功挑战
人工智能·程序员·远程工作
程序员马晓博16 天前
还是聊聊吧:"大龄"程序员失业的一年
前端·程序员
京东云开发者16 天前
云交易技术对接全景
程序员
京东云开发者16 天前
自己写插件-实现时间戳自由
程序员
渭雨轻尘_学习计算机ing16 天前
二叉树构建算法全解析
算法·程序员