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

相关推荐
如约见9 小时前
技术岗的「本科及以上」,多是软门槛
程序员·学历·技术岗
陈随易11 小时前
AI 运维服务器,安全又可靠的方法
前端·后端·程序员
青衫嵌入式12 小时前
根据 STM32 逐行拆解 FreeRTOS 的任务上下文切换
程序员
LV技术派20 小时前
【成为 AI Native Builder · 02】什么是 AI Native Builder:一个人 + AI,交付完整闭环
前端·程序员·ai编程
深蓝AI1 天前
10 万星投给了记忆:claude-mem 把编码 Agent 的断片压进 SQLite,值不值得装
人工智能·程序员
小贺儿开发1 天前
《流光绘忆》Unity 沉浸式光影互动
科技·unity·ai·程序员·工具·互动·光影
深蓝AI2 天前
一个版本号失守:Claude Code 2.1.313 扩展后门事件,开发者机器如何变成别人的 SSH 入口
安全·程序员
深蓝AI2 天前
Ghostty 1.4 七个月打磨:ASCII 解析快 5.7 倍、终端能放动画,SSH 乱码终结
程序员·开源
Solara2 天前
绿灯连亮 6 天、今天我真写了 4 KB:这盏灯从没看过我写的那一层
人工智能·程序员·ai编程
怕浪猫2 天前
我有个朋友,工作八年,公司从 300 人减到 80 人
面试·程序员