GTD
大学时候看了 GTD,把任务写下来,清空大脑,专心现在的任务,还是很实用的。
在实践的过程中,很长时间用的是便利贴,记录每天重要的事情。
后来转为软件,2do、tdolist、奇妙清单、滴答清单等,最近转为使用 obsidian 的 task ,才发现,这才是我最需要的软件。
GTD + 笔记
滴答清单
滴答清单之前开了一年会员,后来发现实际用的并不多,里面的打卡很花哨,但是用完了之后,才发现,约束还是要靠自己,打卡并没什么用…
滴答清单加入笔记,很期待的一个功能,但是怎么都感觉不好用,他的笔记是依附于清单的。
很全,但是总感觉是拼凑的功能。
OmniFocus
老牌软件,清单控终极选择,但是贵啊…
除了贵,我还是不会用这个软件,完整的 GTD 逻辑,但是没有任何的笔记内容,也就是你输入的内容始终是优先的。
Obsidian Tasks
我需要的其实不是正统的 GTD,我需要的是 笔记 + Tasks ,因为我的笔记里面会有很多的任务,两者不可分离。
官网:https://publish.obsidian.md/tasks/Reference/Task+Formats/About+Task+Formats
使用是有成本的,但是程序员嘛,很容易的,都是一些查询语句。
今日任务:
not done
due on 2025-10-19
starts on or before 2025-10-19
show tree
到今天未完成的任务, 包含以下逻辑:1. 到今天到期 2. 开始日期在 今天之前的
本周已完成任务:
not done
( (due on or after 2025-10-13) AND (due before 2025-10-19) ) OR ( (due after 2025-10-19) AND (due on or before 2025-10-19) )
show tree
今日已完成任务
done on 2025-10-19
show tree
所以我的每天任务页面变成了这样:
搭配 template 和 日记,每天自动生成每天的任务页面。
<%*
// --- 这是一个统一的脚本,一次性生成所有任务看板 ---
// 1. 在脚本最开始,只计算一次日期,并存入变量
const fileDateMoment = moment(tp.file.title, "YYYY.MM.DD");
const today = fileDateMoment.format("YYYY-MM-DD");
const weekStart = fileDateMoment.clone().startOf('isoWeek').format("YYYY-MM-DD");
const weekEnd = fileDateMoment.clone().endOf('isoWeek').format("YYYY-MM-DD");
// 2. 构建一个包含所有任务看板内容的巨大字符串
const taskDashboard = `
### 已到期任务
\`\`\`tasks
not done
due before ${today}
show tree
\`\`\`
### 今日任务
\`\`\`tasks
not done
due on ${today}
starts on or before ${today}
show tree
\`\`\`
### 本周其他任务
\`\`\`tasks
not done
( (due on or after ${weekStart}) AND (due before ${today}) ) OR ( (due after ${today}) AND (due on or before ${weekEnd}) )
show tree
\`\`\`
### 今日已完成的
\`\`\`tasks
done on ${today}
show tree
\`\`\`
`;
// 3. 将构建好的完整内容一次性输出到文件中
tR += taskDashboard;
%>
标签系统
标签系统还需要梳理,但是使用过程中,逐步出现了自己的方法论。
tag
工作: #项目/项目A
、#项目/项目B
学习:#学习/学习A
、学习/学习B
生活: #生活/生活A
、生活/生活B
得益于强大的查询语句,这些标签和task 结合在一起之后,可以散落在我所有的笔记之中,然后我们通过查询语句,查询出所有的项目
tags include 项目
sort by status.type
group by tags
解释:tags 包含 项目,根据任务类型进行排序,根据 tags 进行分组。所有的任务,会自动进行分组,并按照未完成,已完成等排序方式进行展示。在一个地方,可以看到所有项目的状态。对于持续跟踪的项目,非常方便。并且,可以点进去,具体项目 task ,查看前后的上下文,有更多的了解。
人员
人员放到一个人员的文件夹,通过 @人员A
进行命名,这样,在 tasks 里面,就可以对人员进行分配。
适合的就是最好的
基于 tasks 的插件,做了大量的定制,我可以从各个维度去统计,去查看各个项目的状态,自己生活提醒等也逐步放进去了。
硬要说不好的,可能是不支持提醒,但是我基本每天都自动生成一篇笔记,也不需要提醒,不在乎移动端。
每天未完成的任务,会自动在下一天的笔记中出现,让我有机会持续跟踪整个 todo 任务。
行云流水,真舒服。