所有的智能设备上的任务管理工具都在用 List(列表)、Tag(标签)、Filter(过滤) 来组织和查看任务(后文将简称为 LTF 系统),只是实现方式和程度的区别。所以上手一个工具的时候,从这个工具的这三个方面考察就能迅速并全面地了解这个工具的整体情况。也正是 Todoist 在这个系统下的表现最突出,所以我才在决定从它开始写现代任务管理。
高级任务管理工具和基础任务管理工具的分界线,我认为是「能否建立复杂的自定义过滤」,因为 Things 2 做不到这一点,所以在知乎 Live 里我没有把它视为和 Todoist、2Do、OmniFocus 一级的工具。我们这次可以看看,Things 3 有没有做到这一点。
列表
列表是最传统的任务的组织方式,从没有智能设备起人们就用纸笔记录来列表,智能设备上的工具也无一例外地延续了这种方式。有人可能会说现在有些工具在使用看板的形式,但其实看板也可以看作列表的变形。
传统的层级结构
Things 3 的任务系统层级总共分 5 级:
区域(Area):如其名称所示,用于分割区域。这一点上相当于 2Do 的列表组(List Group),和 OmniFocus 的文件夹(Folder)。但区别在于,Things 的区域下面不仅可以放列表,也可以直接放任务,这样你可以把那些属于一个任务区域,但是又不属于任何一个项目的杂项放在它的下面。这个功能在 Things 2 实现得非常糟糕,因为在软件的界面上 Things 2 根本没有显示出区域与项目的关联,两者是分开的。Things 3 终于在视觉上把它们统一了。区域的下一级有项目和任务。
项目(Project):传统的项目/列表的概念,不需要多介绍。它的下一级是标题或任务。
标题(Heading):用于分割项目中的任务,是 Things 3 的一个新形式。标题下面的任务是强依附于标题的,当我们把标题移动到其它项目时,下面的任务也会随之移走。标题的下一级是任务。
待办事项(To do):传统的任务(Task)的概念,也不需要多介绍。它的下一级是清单。
清单(Checklist):清单附属于任务,没有任何独立性,不能被拖拽出动作或移动到其它动作。清单里的项目不能被视作任务,因为它不能添加任何附加内容,比如日期、备注、标签。所以有时候我们觉得应该是可以用清单列出的事,因为需要添加不同的标签,所以需要把它升级为任务。比如我们播客剪辑和发布,三个人是有不同分工的。所以不同的任务需要用标签标上指派给了谁:
总的来说,可以这样理解 Things 3 的层级结构:它的核心是「项目—任务」这两个层级。在任务之下,用「清单」的形式来实现子任务。Things 3 又加入了「区域」和「标题」这两条线,一条用于把项目划开,一条用于把项目下的任务划开。一共 5 层,我想这足以满足大部分人的需要了。
标签
标签是 LTF 系统里第二个重要的维度,在 Things 3 目前在用的这个系统里标签有着比在其它工具中更重要的作用。
支持层级嵌套
首先说一下 Things 3 的标签层级。Things 3 的标签是支持层级的,而且顶级层级的标签下也可以放任务,这一点会让不少喜欢用标签的人满意。
在 macOS 上你可以用 ⇧ + ⌘ + T
呼出标签菜单,但在这个地方你只能管理标签,删除、新建,或者给它们排排序、改改名。如果你想像其它工具一样,在软件的主界面上找到一个地方,可以显示所有标签,然后选择某个标签就可以看到它下面的所有任务,那可能要失望。
显示方式
Things 3 没有像 Todoist、2Do、OmniFocus给标签一个单独的显示界面,让我们可以通过这个界面显示所有的标签。
Things 3 在界面上主要是通过每个列表顶部的标签栏来显示标签。而且它不会显示所有的标签,只会显示该列表目前所含任务配有的标签。比如我总共有 20 个标签,但是这个列表下的任务配有的标签加起来也只有 5 个,那就只显示这 5 个标签,而不会显示所有的标签了。
这个只展示有效标签的想法很不错,但也有一定的背景原因,那就是 Things 是个对标签依附很强的工具,它的过滤主要是以标签为维度实现的。你在「今天」这些列表里只能通过标签来筛选任务,不能通过列表,也就是说,如果你想通过列表筛任务的话,不说每个项目,至少每个区域——一般人会是「个人」、「工作」、「学校」、「副业」等——都需要附上一个标签,而且 Things 能够并从功能上鼓励你给区域套标签。除此之外,Things 3 依然不支持多人协作,在 Things 2 里的联系人机制也被撤掉,官方文档里写道:
We recommend using Tags for contacts’ names instead.
所以如果你的任务有委托人,你就需要多加几个委托人的标签。所以如果一个人有比较成熟的任务管理系统和思路,那么他使用 Things 的标签量必然比他用其它几个工具要多。因为 OmniFocus 和 2Do 支持用列表做过滤,而 Todoist 不仅支持用列表做过滤,指派人都化为了特殊的功能,完全不需要借助标签。所以这时候,就是要考虑如何在显示方式上做精简。
除了在界面上可以显示标签,如果想查看某个标签下所有的任务,可以通过搜索标签来实现。
它这个搜索界面的呼出方式还是不错的,在 macOS 上,除了可以用 ⌘ + F
呼出以外,也可以直接在任何界面开始输入,输入的当时就会呼出这个界面开始执行搜索。但是问题是如果你的标签用中文的话,你可能不会喜欢直接输入,因为第一个输入的字母还是会被视为英文。比如你输入「gongzuo」准备找「工作」这个标签,结果你会找到「g哦呢工作」,所以建议还是用英文来做标签。
作用对象
Things 的标签的作用对象不止是单个的任务,也支持项目和区域。在 Things 的官网里对标签有一句描述:
You can also tag your projects and areas. This is useful because to-dos automatically inherit the tag from the list they’re in, which means you don’t have to tag each to-do manually.
加粗的那句意思是「单个任务会继承它所在的列表的标签」。但这个情况目前有一些奇怪:
首先通过「今天」这个界面看,它确实是这样的。当我们给「工作」这个区域打了「工作」的标签,在「今天」这个界面选择它就会显示所有「工作」这个区域下的任务:
但是,当我们看「工作」区域下一个个单独的动作或者项目,会发现它们没有继承这个标签,这就导致,通过标签的搜索界面查看「工作」这个标签时看不到这些任务:
这说明在 Things 3 里如果一个任务没被单独打上「工作」标签,它就不会出现在搜索结果里。
用快捷键批量添加标签
Things 3 可以在标签管理界面给标签设置快捷键,当你想给多个任务打标签时,可以先选中这些任务,再按 Ctrl + 快捷键
来批量给这些任务打标签。
过滤
过滤是在任何一个高级一点的文件整理工具上都必不可少的功能,我们很多人对它应该也不陌生。在 macOS 中过滤无处不在:原生邮件应用的智能邮箱、iTunes 的智能播放列表、Finder 的智能文件夹统统是过滤的形式……
在任务管理中,它最大的用处是减少一个列表中当前无效的项(item)。比如我们到了办公室,想看「今天的工作」。如果我们只看「今天」这个界面的任务,会发现不光有工作的,还可能有「擦马桶盖」这种个人任务。而如果只看工作的项目,就会发现里面有好多不是今天要做的,杂七杂八一大堆东西。把满足「今天」的「工作」这两个条件的任务筛选出来,就是过滤的任务,它可以让你专注于当下这个场景应该处理的事。所以它非常重要。
基于标签的过滤形式
Things 的过滤系统的维度组合只有两种:「标签+日期」或「标签+项目」,因为我们只能在日期列表或者项目列表上指定标签过滤任务,而没有办法在日期界面指定项目再指定标签。因为在日期界面点项目名的话,就会直接跳到那个项目的界面里去了。
这就导致了我之前提到的问题——如果想把日期界面和项目结合起来,就必须要给项目套标签,至少要给区域套标签。这样就可以在「今天」这个界面选择项目的标签,然后再进一步地选择其它的标签。
在 Things 里,当多选标签的时候,它显示的结果是这多个标签的交集,而不是并集。
比如说我在「Checked 节目发布」这个项目里,同时选择了「Eames」和「Gabrilla」这两个人物标签,它显示的不是带有「Eames」的任务 + 带有「Gabrilla」的任务,它显示的是同时带有「Eames」和「Gabrilla」的任务。
这个设计自身没有问题,但也应该考虑到并集的情况,给用户一个实现并集的方式。让过滤的制作可以更灵活。
最后,Things 的过滤不能预置,也就是说它这个过滤都得临时手动点出来,这一点会让使用常用过滤很不效率。也导致很多人在测评 Things 的时候会完全忽视它的过滤的能力。但是从另一方面看,预设过滤有它的修改成本,每次需要过滤任务的时候再临时选择一下过滤条件想想也说得过去。
相比较于过滤,更惨的是 Things 的自动化。Things 虽然一直支持 AppleScript,而且支持得还挺全面,但是你会发现没有多少人提 Things 的自动化。但大家折腾 OmniFocus 的 AppleScript 都折腾的不亦乐乎,为什么?因为 Things 界面上没有让你预置 AppleScript 的地方,你要在 Things 里用 AppleScript,得用一些其它能跑 AppleScript 的工具来配合。OmniFocus 就不一样,你买了高级账户就能把写好的 AppleScript 放到工具栏上。这相当于你自己给这个软件写了你自己喜欢用的功能,并且把这个功能放到了界面上,想用的时候点一下就能用。
Things 3 的独特逻辑
Things 3 有它自己的一套逻辑,包括组织任务的结构和日期。我上手它之后发现了不少用其它工具的思路不能很好解释的现象。
比如在我刚上手 Things 的时候就做了一个很常规的动作:给收件箱里的任务套上一个「今天」的日期。然后我发现这个任务从收件箱消失了(现象一)。然后我在「今天」这个列表里找到它,把这个任务「今天」这个日期属性去掉,看它会不会回到收件箱。结果发现它没回到收件箱,而是跑到了「随时(Anytime)」这个列表里(现象二)。
这个过程图解起来是这样的:
我发现这两个现象的 combo 之后就愣了,然后把它发到了微博和 Twitter,获得了一些解释,其中最多的是说这样才是真正的 GTD,因为在 GTD 中收件箱只做收集用,一个任务被标上日期就说明它被「处理」过了,所以它不能留在收件箱了。
看似挺有道理,但是当我们给收件箱里的任务单独加备注、加清单、加 deadline、加标签,这个任务都不会移走,依然会留在收件箱。难道这些都不算处理吗?
所以,用 GTD 解释 Things 并不能把第一个现象解释明白。它关系到 Things 这个软件的结构设计。
带有过滤属性的列表
首先是应该怎么看待「今天」这个位置。熟悉其它工具的人会说,它是个过滤,负责把所有标上「今天」这个日期的任务集合在一起。这样想没有错,但是不完整,因为过滤,是不能单独存放东西的,它是用来展示用的。比如一个智能邮箱,它里面展示的邮件都有自己的文件夹,比如在收件箱、已删除或者归档,但一封邮件不会单独地存在于智能邮箱而不存在于其它文件夹。
在 Things 3 的 AppleScript 文档中可以看到,它预设的「收件箱」、「今天」、「计划」、「随时」和「某天」,包括「日志簿」和「废纸篓」统统属于列表(List)这个类。这就意味着这里面都可以独立存放任务。
所以 Things 中的这些列表,尤其是「今天」和「随时」,实际上是带有过滤属性的列表。加进去的任务不需要再有其它的归属,但有其它归属的任务也可以被显示在这。
然后再来看为什么一个收件箱里的任务,标上了今天,就要移动位置。
我们如果用 GTD 的「处理」去解释这个这个现象,就相当于把「处理」这个行为限制到了执行日期变动上,可是 GTD 这套方法对「处理」的定义没有这么狭窄。不过,有一套名为 43 Folders System的方法论,它是严格按照事情的执行日期来划分的。既然有这种方法论,我们就可以理解为什么加了日期的任务有从收件箱移走的必要,也可以理解为什么一个加了日期的任务摘了日期不会回到收件箱,而是再进入到代表不确定哪天会执行的「随时」。
接下来还有一个现象需要解释:为什么一个任务可以同时存在于「今天」和「随时」这两个列表里,却在一些情况下不能存在于「计划」和「随时」这两个列表里?
要搞清楚这个问题,就要看 Things 的日期逻辑。
Things 3 的日期逻辑
Things 3 给任务设定了两个时间标记,一个是 时间(When)
,一个是 截止日期(Deadline)
。时间中的「今天」是个特殊的状态,它的标志是星标,其它的都是日历图标;截止日期的标志是旗标。
首先,这个「时间(When)」,更准确的理解应该是任务的执行时间,可以与截止日期分离。比如我写 Todoist 教程,每周三是发布它的截止日期,但是我可以每天都执行写它这项活动。
在 Things 里,「计划」和「随时」不能用字面意思理解,它们有特殊的过滤含义:
如果一个任务有执行时间,而且执行时间不是今天,那么它就会存在于「计划」。用 Todoist 的语法表示可以是 (when & !today)
。这就是为什么「计划」的标志和「时间(When)」的标志一样,都是一个日历的标记。
而如果一个任务,如果它的执行时间是今天,它就会出现在「随时」里,这点我想只能用字面意思解释了…并且,没有执行时间的任务,只要它不在收件箱里,也都会出现在「随时」里。用 Todoist 的语法表示可以是 (today | !when & !inbox)
。
所以一个任务能同时出现在「今天」和「随时」里,却在它被标上执行时间后就不能同时出现在「计划」和「随时」里。
结语
Things 有一些同类工具里表现最好的功能,比如和日历的结合以及它的显示方式,以及把任务拖到「计划」就会弹出一个日历让你选时间这种令人愉悦的交互;但它现在也有一些功能上的严重缺陷,比如不支持附件、地点提醒,还有重复任务不允许存在于项目中。这些功能上的小点,大家在乎的方面都不一样,好在都可以从 macOS 的试用体会到,我直接在这里给出试用版的官方下载链接,也劝一些人别到处求盗版了。
盗版的工具你不会珍惜。
感谢与我讨论过这些问题的 Things 用户,尤其是 @gviridis和 @choonwook,帮我确定了不少新问题也在讨论过程中提供了有用的思路。
你也可以做好任务管理
做好任务管理并不难,只要掌握了一些简单的核心观念,其实人人都能轻松做好任务管理。Hum 根据自己多年以来对任务管理的研究和实践,并通过《用更现代的方式做任务管理》系列穿越任务管理的重重疑点和误区,让你真正掌握任务管理并应用在工作和生活中。
👉 你可以 点击这里购买《用更现代的方式做任务管理》系列教程,限时特价 39 元。
📖 你可以 点击下载第一期试读 (如遇链接无法跳转,请复制右边链接在浏览器打开,会直接开始下载:http://sspai.com/s/KPmp)