使用 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基本操作,包括创建任务、结束任务、修改任务等等。
  • 需要理解due、start、scheduled等名词含义等。
  • 需要知道关于bool运算符含义,比如AND、OR、NOT等。

简单查询

查询所有任务

直接使用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 个月,priority 是 medium 或 high,且 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 date:scheduled必须有值。
  • tags do not include #personal:tags不包含#personal。

总结

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

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

相关推荐
高晶19 小时前
Android 智能语音开发新手入门实战
后端·程序员
高晶19 小时前
Android 机器视觉新手入门:从扫码到人脸实战
后端·程序员
路就在脚下19 小时前
2026最新Rust入门教程[06]
程序员
长坡夜行1 天前
复盘:一个 `continue` 让风控把 13% 持仓当成 0,自动触发了 -15.7% 假熔断
程序员
Solara1 天前
我重算了 11 天,抓出自己抄错的 1 天:AI 会把"公式"记成"数列"
人工智能·程序员·ai编程
cyf311 天前
程序员到架构师工作和生活反思
程序员·生活·架构师
Thneonl1 天前
故意弄坏生产:混沌工程不是乱砸,是实验设计
后端·程序员
Thneonl1 天前
别上来就 strace:60 秒十条命令看清一台病机
后端·程序员
Sam_Deep_Thinking1 天前
CountDownLatch实现原理
java·后端·面试·程序员
程序员cxuan2 天前
腾讯又来一王炸,开源版 WorkBuddy 太夯了!
人工智能·后端·程序员