本文是 本系列 的第二篇, 分享在Emacs中践行 GTD 的工作流

TL;DR

  1. 所有被维护的 GTD 相关的条目,都放在名为 gtd.org 的单个文件中。
  2. 每天会对外部收集箱和内部收集箱进行整理,移动。清空收集箱
  3. 任务主要分为几个状态, TODO(初始未整理的状态),NEXT(下一步可以做的),SOMEDAY(因为某种原因暂时不做,将来会做的), CANCELED(已放弃),DONE(处理完成)
  4. 每周会对所有的非终态的任务重新规划状态。查看所有SOMEDAY的任务,是否有可以下一步处理的。
  5. 定期归档已完成的任务
  6. 详细的配置可以看这里(我的Emacs配置仓库)

文件的组织

上一篇中,把收集分为两种,一种是内部收集,一种是外部收集。

外部收集的任务中,有部分是依赖于同步的,为了避免同步出错拖累了其它,所以每个需要同步的外部收集箱,都是一个独立的文件。例如: inbox/caldav_personal.org inbix/caldav_family.org sync/orgzly.org 等文件

所有GTD事项都维护在 gtd/gtd.org 文件中,而在这个文件有一个内部收集箱, Inbox For GTD, 它有两个作用:

  1. 外部收集箱中的事项,如果是一个GTD的任务,会被先 Refile 到这个内部收集箱里面
  2. Emacs 内的任务捕获,以及 Rofi 中的任务捕获,因为已经能确定是任务,所以会直接捕获进内部收集箱

一旦进了内部收集箱,后续的所有管理操作都是围绕这一个单独的文件进行操作。

文件内的结构大致如下:

* Inbox For GTD
* Personal Task
* Personal Event
* Personal Project
* Family Event
* Family Task
* Work Task
* Work Project

之前我是会按照场景把事项分到不同的文件中,例如我会分为 personal.org work.org family.org inbox.org 等文件。但是我发现这样并没有带来很大的好处,反而不能充分利用 Org 自带的稀疏树视图。

日常流程

  1. 移动端收集有时候想到一些事情,需要在指定的时间处理,我会在手机的系统日历中增加一个事件,然后把它分配给 caldav 中的personal或者family。而想起来对某件事情感兴趣,或许需要处理某件事情,但是没有时间限制,我会在 Jtx Board 上快速创建一个任务。然后等待 DavX 定期/手动同步到 Caldav 中。

    或者有些笔记或想法想写,时间充裕或者文本较长的话,我会打开 Orgzly 去写,等待这 定期被 Syncthing 同步到 PC。或者也会在 Jtx Board 创建一个任务, 同步到 Caldav

  2. PC 端收集如果在 Emacs 中工作的时候, 产生一个个要处理某件事的想法,或者某个代码需要后续处理,又或者接到别人的一个临时任务。会在 Emacs 中使用捕获任务模板,放入内部收集箱,如果是产出的想法,会通过笔记进行记录(可能是下一篇博客的主题了)如果在Emacs外部工作,当出现需要快速记录任务的情况,会使用 Rofi 快速捕获任务到 内部收集箱,如果是有想法,会切换回 Emacs,使用日记记录

  3. 每日整理首先是通过 org-caldav 同步 Caldav 中的任务和日历到本机的外部收集箱。当然了,也会对已有任务的状态变更进行双向同步。先整理外部收集箱,(此处有定制的 agenda 视图)把属于 GTD 事项的 Refile 到内部收集箱,属于日记,笔记的,放入 Org-Roam 流程。整理内部收集箱,对任务归类、调整状态、打标签、规划日期、补充说明等,然后 Refile 到对应的 Headline 中

常用的属性

TODO关键词

  • TODO 初始的关键词,通常代表着未整理的
  • NEXT 下一步行动,没有前置依赖,可以直接开始执行的任务
  • SOMEDAY 未来会做的事情,可能有前置依赖,可能优先级不高,也可能仅仅是时机未到
  • ABORT 已经进入 GTD 但是被放弃的任务
  • WAITING 等待某人的反馈

标签

  • personal 私人相关的任务和事件,用于 caldav 的筛选
  • work 工作的相关任务和事件
  • family 家庭中需要共享的任务和事件
  • project 用于标识项目

时间戳

  • SCHEDULED 给任务进行排期,通常用于本周内的任务排期。 或者习惯的周期设置。或者事件的事件设置。
  • DEADLINE 截止日期,通常用于有截止日期的任务。
  • 活跃时间戳 用户常规事件的日期设置

分类方法

我对相关事项有以下分类:大的分类为项目、习惯、任务、事件

  1. 项目不能够一次性完成的,需要拆解为多个任务分多次才能完成的,称之为项目。 又可细分为有完成条件的项目和无完成条件的项目。例如 女儿的疫苗接种游山玩水计划 都属于无完成条件的项目,因为它们的任务列表会持续的增加。而像 三月份厦门之旅 则是有完成条件的项目,通常会分解为多个任务和事件。

  2. 任务常规的待办事项,通常是可以直接开始的行动(下一步行动)。分为一次性任务和周期性任务。可以有计划开始时间,也可以有截止时间,通常可以提前 完成 。例如 安装mermaid-mode使博客支持流程图 则为一次性的任务,且没有任何时间安排。 居住卡续签 为周期性任务,并且同时拥有截至时间和计划开始时间。截至时间为居住卡到期日期,开始时间为居住卡到期日期前一个月(因为只要剩余不足1个月才可以办理续签)。

  3. 习惯是一种特殊周期性任务,关键在于不需要过期后持续关注。只有计划开始日期,不会有截至日期。例如 每日清空RSS订阅列表每周重新整理GTD任务 都是属于习惯。即使某一周没有整理GTD任务,也无所谓。只要下一周整理了就可以。

  4. 事件和任务不一样的是,事件绝对和时间挂钩,时间是事件存在的前提。可以是一次性的,也可以是周期性的。通常是不需要 完成 ,或者不能提前 完成 。例如 高考出分 为一次性事件,且不需要 完成 , 而 每月1号部门例会 则为周期性事件,不能提前 完成

设置方式为:

  1. 项目给项目加上 project 标签, 之后配置一个自定义议程视图 ("wp" "每周项目回顾" tags "+project" ((org-use-tag-inheritance nil)))
  2. 任务增加 TODO关键词,如果有截止日期增加 DEADLINE ,一般设置为 SOMEDAYNEXT 。 然后每天检查 NEXT 列表,安排最近几天的任务,加上 SCHEDULED
  3. 事件不要加 TODO关键词, 一般使用激活时间戳,如果需要过期提醒的话,改用 SCHEDULED
  4. 习惯不要加 TODO关键词,使用 SCHEDULE , 例如
    SCHEDULED: <2024-03-20 三 .+1d/3d>
    

同时增加属性

:PROPERTIES:
:STYLE:    habit
:END:

后续

下一篇大概率回事笔记\日记 或者博客相关的