‼️ A complete primer on the whys and hows of todo.txt.
| Files | Last commit | Last update |
|---|---|---|
| 8 years ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 5 years ago | ||
| 2 months ago |
todo.txt 格式
关于 todo.txt 的价值与使用方法的完整入门指南。
todo.txt 的首要且最重要的规则:
todo.txt 文本文件中的一行代表一项任务。
为何选择纯文本?
纯文本不受软件和操作系统的限制。它支持搜索、便于携带、占用资源少,且易于处理。它是非结构化的。即便他人的网络服务器宕机,或是您的 Outlook .PST 文件损坏,纯文本依然可用。无需导出导入,没有数据库、标签、标记、星标、优先级排序,也没有任何公司强加的条条框框限制您的使用。
高效待办清单的三大维度
通过在 todo.txt 中使用特殊标记,您可以创建一个能够从三个关键维度进行筛选的清单。
优先级
您的待办清单应当能够告诉您接下来最重要的事情是什么——无论是按项目、按场景,还是整体来看。您可以为任务选择性地分配优先级,使其自动排到清单的顶部。
项目
推动大型项目进展的唯一方法是处理与其相关的小型子任务。您的 todo.txt 应当能够列出特定项目的所有任务。
例如,为了推进“清理车库”这样的项目,我的任务清单应当给出为了推动该项目进展而下一个合乎逻辑的行动步骤。“清理车库”本身并非一个好的待办事项;但在“清理车库”项目中的“致电慈善机构安排物品回收”则是。
场景
《搞定:无压工作的艺术》(Getting Things Done)一书的作者大卫·艾伦建议按场景划分任务清单——即您执行任务的地点和情境。需要发送的消息放在 @email 场景中;需要拨打的电话放在 @phone 场景中;家庭项目放在 @home 场景中。
这样,当您在车里有几分钟空闲时间并且带着手机时,就可以轻松查看 @phone 场景下的任务,利用这个机会打一两个电话。
所有这些都可以在 todo.txt 中实现。
todo.txt 格式规则
您的 todo.txt 是一个纯文本文件。若要利用优先级、项目、情境、创建日期和完成日期等结构化任务元数据,需遵循一些简单但灵活的文件格式规则。
从理念上讲,todo.txt 文件格式有两个目标:
- 文件内容应具备人类可读性,无需借助纯文本查看器或编辑器以外的任何工具。
- 用户能够在纯文本编辑器中以合理且符合预期的方式操作文件内容。例如,能够按字母顺序对行进行排序的文本编辑器,应该也能以有意义的方式对您的任务列表进行排序。
正是基于这两个目标,例如,行以优先级和/或日期开头,以便于按优先级或时间排序;已完成的项目标记有 x,这样既能在按字母顺序排列的列表中排到末尾,又看起来像一个已勾选的复选框。
以下是其他规则。
未完成任务:3 条格式规则
todo.txt 的美妙之处在于它完全是非结构化的;您可以附加到每个任务的字段仅受限于您的想象力。入门时,请使用特殊符号来表示任务情境(例如 @phone)、项目(例如 +GarageSale)和优先级(例如 (A))。
一个 todo.txt 文件可能如下所示:
(A) Thank Mom for the meatballs @phone
(B) Schedule Goodwill pickup +GarageSale @phone
Post signs around the neighborhood +GarageSale
@GroceryStore pies
对 @phone 上下文项目的搜索和筛选将输出:
(A) Thank Mom for the meatballs @phone
(B) Schedule Goodwill pickup +GarageSale @phone
要仅查看 +GarageSale 项目的事项,输出如下:
(B) Schedule Goodwill pickup +GarageSale @phone
Post signs around the neighborhood +GarageSale
当前待办事项有三条格式规则。
规则 1:若存在优先级,其必须始终置于首位。
优先级是一个 A-Z 范围内的大写字母,用圆括号括起,且后面跟一个空格。
以下任务包含优先级:
(A) Call Mom
这些任务没有任何优先级:
Really gotta call Mom (A) @phone @someday
(b) Get back to the boss
(B)->Submit TPS report
规则 2:任务的创建日期可选择直接跟在优先级之后,并以空格分隔。
如果没有优先级,创建日期则置于首位。若存在创建日期,其格式应为 YYYY-MM-DD。
以下是带有创建日期的任务示例:
2011-03-02 Document +TodoTxt task format
(A) 2011-03-02 Call Mom
此任务没有创建日期:
(A) Call Mom 2011-03-02
规则 3:情境(Contexts)和项目(Projects)可出现在行内优先级/前置日期之后的任何位置
- 情境前需有一个空格和一个@符号(
@)。 - 项目前需有一个空格和一个+符号(
+)。 - 项目或情境可包含任何非空白字符。
- 任务中可以包含零个、一个或多个项目和情境。
例如,以下任务属于 +Family 和 +PeaceLoveAndHappiness 项目,同时也属于 @iphone 和 @phone 情境:
(A) Call Mom +Family +PeaceLoveAndHappiness @iphone @phone
此任务中没有上下文:
Email SoAndSo at soandso@example.com
此任务中未包含任何项目:
Learn how to add 2+2
已完成任务:2 条格式规则
有两种情况表示任务已完成。
规则 1:已完成任务以小写字母 x(x)开头
如果任务以 x(区分大小写,必须为小写)开头,且其后直接跟一个空格,则该任务被标记为已完成。
以下是一个已完成任务的示例:
x 2011-03-03 Call Mom
这些不是完整的任务。
xylophone lesson
X 2012-01-01 Make resolutions
(A) x Find ticket prices
我们使用小写字母 x,这样已完成的任务就能通过标准排序工具排到任务列表的末尾。
规则 2:完成日期紧跟在 x 后面,中间用空格分隔。
例如:
x 2011-03-02 2011-03-01 Review Tim's pull request +TodoTxtTouch @github
如果您已在任务前添加了创建日期,那么完成后它将直接显示在完成日期之后。这样,您的已完成任务就能使用标准排序工具按日期排序。许多 todo.txt 客户端在任务完成时会丢弃优先级。若要保留优先级,请使用下文所述的 key:value 格式(例如 pri:A)。
有了完成日期(必填),如果您使用了前置日期(可选),就可以计算完成一项任务所花费的天数。
其他文件格式定义
工具开发人员可以为额外元数据定义其他格式规则。
开发人员应使用 key:value 格式来定义额外元数据(例如 due:2010-01-02 作为到期日)。
key 和 value 都必须由非空白字符组成,且不能包含冒号。key 和 value 之间仅用一个冒号分隔。