有一段时间一直在用Omnifocus(iPhone + iPad + Macbook)。它无论是从GTD的符合度,还是从用户体验,还是Sync的体验,都非常好。

缺点也是显而易见的!就是没有办法跨平台,好不容易有人给Android做了一个Focus GTD,但被Omnifocus围追堵截。而且目前还不支持Omnifocus的新的加密存储格式。

我一度设置了一个bash alias,聊以在Linux上做收件箱。

alias omnifocus="alpine example.123456@sync.omnigroup.com"

前几天在对比了 TaskwarriorTodo.txt 之后,决定正式迁移到 Todo.txt 上。(啊,中间还短暂的用了一个月的Emacs Org Mode,体验也非常好,可惜iPhone上没有好用的客户端。

GTD

Get Things Done

有好几本,但是从来都没有勇气读完。 Omnifocus的GTD文档或许可堪一看。

GTDcanonical

GTD Workflow

toodledo

这里着重补充一点(也是昌老师强调过的..):

Regular review of your actions and projects is central to making sure the GTD methodology works.

不定期Review的话,这些项目就会整整齐齐地死你在的列表里。

上面这个演讲推荐一看。

Todo.txt 的语法

Todo.txt的作者Gina TrapaniLifeHacker的创始人之一,最早版本的Todo.txt也是发布在这上面的。

The Todo.txt Format

format rules

比如:

(A) @buy 回家的车票 due:2017-01-15
把洗衣机里的衣服晾起来 t:2017-01-11 due:2017-01-12 @宿舍
见到 @周星驰 的时候跟他要个签名
见到 @周星驰 的时候跟他说孩子已经打掉了
@office 见到 @李老师 的时候向他汇报一下 +国家科技进步一等奖报奖 事宜
在 @宿舍 看 @movie 神探夏洛克
有空了看 @movie  中纪委纪录片《打铁还需自身硬》
@office 写 +国家科技进步一等奖报奖 的文件清单 发给 @李老师 审阅 due:2017-01-13
有钱了买架飞机 @buy
在淘宝上下单一个京东自营的淘公仔 @buy
@office 试一下todo.txt与Dropbox同步

非常简单,最早的todo.txt客户端Todo.txt CLI就是一个一千多行的bash脚本。

我做了三个bash alias:

alias tt="todotxt-machine ~/Dropbox/todo/todo.txt ~/Dropbox/todo/done.txt"
alias t="todo-txt -a -d ~/Dropbox/todo/todo.config" # -a: 在 t do 的时候不要自动archive. 后面可以手动 t archive
alias vimtodo="vim ~/Dropbox/todo/todo.txt"

接着,在你有空想看电影的时候:

t ls @movie

正好见到老板的时候:

t ls @李老师

有一笔闲钱的时候:

t ls @buy

排除掉一些目前不合适的Context:

alias t-focus="t |grep -v -e @movie -e @home -e @waiting -e @someday -e @buy | less -r"
# less -r 可以保留颜色

平时建议的工作流程:

t p 1 A  #把1号任务标为优先级为A
t lsp    #把标有(A) (B) (C)等优先级的事情列出来
t do 1   #把1号任务标为做完,并自动移动到done.txt里归档

可以多用 t:2017-01-11 这样的语法,然后在客户端里选上 Hide future tasks,这样就可以处理一些到了特定时候才需要做的事情,而平时它又不会出来烦你。

少用 due:2017-01-15 这样的语法,除非它真的是 Dead Line.

另外,Todo.txt也支持一些插件,推荐试一试schedule插件,配合futureTasks把没到t:时间的事件隐藏,风味更佳。

各客户端

详见:http://todotxt.com/

几个不建议用的:

  • QTodoTxt: 安装包写的不好,没装上
  • jdotxt: java写的,GUI布局很科学,但不支持中文
  • iOS todo.txt-touch: 好久不更新了,一片差评
  • Android todo txt touch: 同上

还有几个Html5/Javascript的方案,貌似对中文的Context不太好

缺点

没有找到支持WebDAV或BTSync(Resilio Sync)的客户端。

我在iOS上用 SwiftoDo ,只能支持Dropbox同步。 目前为了安全/干净起见,注册了一个单独的Dropbox给它用。

冲突案例

刚刚不小心造成了一起冲突:

我用t add添加了一条项目,并用t do清掉了几件事。然后发现另一个tmux里开着一个昨天没关的todotxt-machine,就按q退出了。

结果todotxt-machine关的时候会覆盖之前的文件.. 吓尿了

赶紧去手机上尝试强制上传覆盖,未果。(即使是先开飞行模式,再手动更新一个条目,再关飞行模式,还是瞬间就拉回了旧的数据)

还好,Dropbox有所有版本的历史记录……太伟大了..

所以,用todotxt-machine的时候,一定要确认一下是不是要按q - save and quit,还是需要先按一次R - Reload..

鬼扯几句

发现最关键的有两条:

  1. 多用 @Context 这种上下文,比如 @home @office @phone @bus @metro @computer
  2. 要有两个 @someday 和 @waiting
  3. 要保持 Inbox Zero
  4. 一星期Review一次 <—否则所有东西都死在清单里了
  5. 要识数

如何想出这么多的todo项目呢?

Good question. 引出了我的第二个核心的方法论:
精神分裂工作法
你在脑子里虚拟出8个你计几 然后选出一个小组长
理清这8个分身的汇报关系和层级,
给这8个分身定好KPI的考核绩效
然后就开会。

2017-06-13 补充: Taskpaper

今天我迁移到了 Taskpaper,发现 Taskpaper 的语法比 todo.txt 更科学一点:

  • Project 一定要放在一起,比Todo.txt散着放好多了
  • Mac 上有一个非常漂亮非常完备非常好用的GUI
  • Taskpaper 语法被 Omnifocus 原生支持
  • 此刻 vim-taskpaper 的星星数量(274)比 vim-todotxt (228) 要多

纯文本真的好方便,花了几分钟的时间,就已经完成了 Ørg Mode 一年前的数据 + Todo.txt 半年前的数据迁移到 Taskpaper 上了。

另外,Taskpaper 的作者还做了一个书写工具 FoldingText,看似是个 Markdown 编辑器,但实际上是一个 Outliner,有一种 Org Mode 的范儿。Outliner和Todo list是两个维度的东西。我以前相当长的一段时间里,是把Todo list当成Outliner来用,用Todo list来做长期工作计划,于是好多条目就惨死在Todo list里。

无论是 Taskpaper 还是 FoldingText,都继承了 Org Mode 的思路,但是有一条非常重要的优点:

  • 可以方便地安利™给妹子

Laukc: 然而……
Laukc: 还是没有做啊
Scateu: 迁移的时候相当于强制review一次了嘛
Scateu: 总会做的…
Scateu: 啊你不要再说了!
Scateu: 正在哭

哦最后还学到了一个新词,大致上就是描述我这种整天折腾 GTD 的人: Productivity Masturbation.

tickle me email

Debian的领导人Lamby来北京的时候,跟他聊了一会,他写了一个系列脚本: https://chris-lamb.co.uk/projects/tickle-me-email

用Email IMAP操作来实现GTD。

2018-08-30 补充: Todo List Never Done

http://www.cup.com.hk/2018/08/30/to-do-list-never-done/

Eat a live frog first thing in the morning and nothing worse will happen to you the rest of the day. – Mark Twain

大意是说,Todo List本来就是一个会让人挫败的东西…

  1. 这些是我目前主力在用的客户端  2 3 4 5