todo.txt 一行一任务——GTD 纯文本运动的 Android 原生实现
为什么是 todo.txt
todo.txt 格式由 Gina Trapani(Lifehacker 前编辑)在 2006 年发起。她厌倦了各种 GTD 应用的功能漂移和数据锁定,提出一个极简的设计原则:
待办事项清单应该是一个人能在任何设备上用任何文本编辑器打开和编辑的纯文本文件。
这个原则在今天依然站得住脚——20 年过去了,todo.txt 生态从原始的 Mac CLI 工具发展成了跨平台应用矩阵(iOS / Android / Web / CLI / VSCode 插件……),Markor 是其中功能最完整的 Android 实现。
格式规范
todo.txt 格式只有三条规则:
- 一行一个任务
- 任务的元数据(优先级、上下文、项目、日期)用特定前缀标记
- 已完成的任务在行首加
x和完成日期
(A) 周五前完成周报 @office +work
(B) 买生日礼物 @shop +family
(C) 给老板发邮件 @phone +work
x 2026-10-13 整理上周会议纪要 @office +work
Markor 编辑器模式下会对 优先级、上下文、项目、完成标记 分别做语法高亮,让扫描速度翻倍。
操作任务清单的三种方式
方式一:手动改文件(最通用)
像编辑普通文本一样改文件。行首加 x 2026-10-14 就标记完成,删掉这部分就恢复未完成。
方式二:Markor 任务对话框(最方便)
v2.11 新增的 todo.txt 高级搜索系统 配合对话框,让你能:
- 点某行 → 弹出对话框显示该任务的完整信息
- 对话框里勾选「已完成」→ 自动在行首插入
x 当前日期 - 对话框里可以 批量多选 → 对多个任务一次性标记完成/修改优先级/删除
方式三:Share Into 单行快速创建
当你在浏览器里看到一条提醒或朋友消息、用 Share Into 把 单行文字 分享到 Markor 时:
- Markor 会自动弹出「创建 todo.txt 任务」对话框
- 文字内容自动作为任务文本填进去
- 选择加到哪个 todo.txt 文件(主清单或自定义路径)
- 一键追加
优先级系统
todo.txt 优先级用 大写字母 A-Z 加括号 标记在行首最前面:
| 优先级 | 含义 | Markor 高亮颜色 |
|---|---|---|
(A) | 最重要,今天必须做 | 红色 |
(B) | 较重要,本周内完成 | 橙色 |
(C) | 一般重要,方便时做 | 黄色 |
(D) 及以下 | 低优先级 | 灰色 |
| 无优先级 | 没有标记 | 普通颜色 |
Markor 会自动把 高优先级的任务排在最上面、已完成的排到最下面,你打开文件就能直接看到当前最需要关注的事情。
什么是「上下文 @」
上下文标记在 任务文本里、以 @ 开头,表示这个任务适合在什么场景下做:
(A) 周五前完成周报 @office
(B) 给老板发邮件 @phone
(C) 买生日礼物 @shop
常用的上下文:
@home— 在家时做@work— 在工作场所做@phone— 用手机就能做(比如打电话)@computer— 用电脑才能做@shop— 在商店时做@errand— 外出办事时顺便做
v2.11 的高级搜索让你可以 一键过滤出所有 @phone 上下文的任务——出门前扫一眼清单,就知道手机上还有哪些事要做。
什么是「项目 +」
项目标记在 任务文本里、以 + 开头,表示这个任务属于哪个项目:
(A) 设计新版应用图标 +app-redesign
(B) 写 API 文档 +app-redesign
(C) 订机票 +holiday-planning
和上下文的区别:
| 维度 | 上下文 @ | 项目 + |
|---|---|---|
| 含义 | 在哪做 | 属于什么项目 |
| 数量 | 一个任务可带多个 | 一个任务通常属于一个项目 |
| 作用 | 场景过滤 | 项目归属过滤 |
Markor 的高级搜索可以 同时按上下文和项目过滤——比如搜出 @work +app-redesign 的所有任务,就是这个项目里需要在工作场所做的事情。
完成标记与归档
标记完成
在 Markor 里打开 todo.txt 文件后:
- 点某行任务 → 弹出对话框
- 勾选 Done / Completed
- Markor 自动在行首插入
x YYYY-MM-DD(当前日期) - 任务自动沉到文件底部
归档
v2.11 之前,已完成的任务只是沉到底部、文件会慢慢变长。v2.11 开始支持 自动归档:
- 已完成的任务可以被移到独立的归档文件(比如
done.txt或archive.txt) - 也可以保持在主文件里、只是通过搜索过滤隐藏
推荐策略:每周回顾时手动 grep "^x " todo.txt > archive.txt 把已完成任务挪走,保持主文件清爽。