Todo.txt

作为一个软件狂,我经历过 Omnifocus、Wunderlist、Doit.im 这种大型 GTD 的洗礼,以及 Todo、Clear、GoogleTask 这种文艺小清新 Todo 软件的渲染。各种各样奇形怪状的项目管理软件我基本都用过,我甚至还买了一些非常有逼格,比逼格更逼格(Bigger than Bigger)的实体笔记本来记录我的 Daily Tasks,最后均无果而终。吃一堑长一智,总结下来就是:

  1. 以 Omnifocus 为标杆的这类大型,注意是大型 GTD 软件,使用起来的感觉,就像你的女朋友足足有 300 公斤重,没错就是这种感觉,就是有 300 公斤,人家也是你女朋友,是你女朋友你就不能轻易甩开吧,是吧。以 Omnifocus 为例,实际上你用这玩意有超过一半时间是在维护你 Omnifocus 上的 Context、Project 和 Inbox 的,实际上当你维护好看着特别舒服的时候你就懒得去照着你的 List 做下去了,当你做下去并且做完了你又发现你实在是不想再看一眼你的 Omnifocus 了,事实就是这样,无解。

  1. 以 Clear 为领头羊的轻量级 todolist 软件,嗯,同样是女朋友,但这次你的女朋友只有不到 70 斤。以 Clear 为例,简直就是个 List(虽然人家确实是个 List),不能设定 Due,不能设定 Context,而 Project 的设定又很不直观,切换也麻烦。

  2. 最后是手写 List,手写最大的弊端在于,你需要一个本子,和一只笔,这两件东西必须随身携带,缺一不可。我觉得不只是我,有很多人会因为这样那样的原因在需要记录的时候找不到笔或纸。同时,纸质List的排序非常麻烦,在对项目进行修改过后,笔记本实际上会显得一团糟…


今天我在各个论坛闲逛的时候,在 Weiphone 发现这么一个帖子分享几个自制 workflow,这帖子里前面几个 Workflow 我都不感兴趣,但最后一个 todo.txt 的 Workflow 一下子抓住了我的眼球。首先看了看 todo.txt 的介绍,说句良心话,凡是带有 Terminal 或者与 Terminal 沾边的软件,都能博得我的好感。原楼主的 workflow 中已经自带了 todotxt 的 CLI 文件,也就是说可以直接使用而不用费神地配置。作者将产生的 .txt 文件命名为 display.txt 让我很不解,我顺手改回了 todo.txt(这也是后面产生问题的关键所在)。同时原楼主也提到使用 Geektool 来在桌面展示自己的 todo.txt,于是 Geektool 这个以前我认为毫无用处,顶多就是放个时钟看个天气的软件被我重新重视,在研究了一番并导入了楼主的配置以后,我查看了一下 Workflow 的说明:

使用方法:({}大括号为必要参数,[]中括号为可选参数)

  • todo {task} 添加一个任务,其中 task 的组成可以是只有任务内容,项目归类在后面添加`+项目名`,上下文在后面加`@上下文`,优先级在前面加`(A)`(优先级高低从A-Z),优先级声明后必须空一格接任务内容,如”(A) THING I NEED TO DO +project @context1 @context2″
  • done {n#} 将标号 n# 的任务标记为完成,标号在显示列表的每个任务首部查看
  • todel {n#} 删除标号 n# 的任务
  • tols [key] 显示所有任务,或与 key 相关的任务
  • tolsc [key] 显示上下文(Context),用 key 来筛选上下文
  • tolsprj [key] 显示项目(Project),用 key 来筛选项目
  • topri [key] 升高指定任务的优先级,按 Option 键降低优先级
  • toedit 直接编辑 todo.txt 文件,编辑完后需要用 tols 来刷新桌面的显示列表

很快熟悉了基本操作,由于原版 Workflow 默认的排序方式是按 List 顺序排列的,而我个人喜欢按 Project 排序,因此我将默认指令修改了一下,以 Project 排序,符合自己的使用习惯。同时,作为一个有同步强迫症的人,光在 Mac 上使用当然不能满足我的需要,而正好 todotxt 也提供了 iPhone 版本。于是我便把生成的 todo.txt(原 display.txt)放到了 dropbox 目录中:

~/Dropbox/todo

然后再将 Alfred Workflow 中的 Script 代码指向上面的地址,本以为这样就完事儿了,但意想不到的是,在手机端的 todo.txt.app 中,文本全是乱码,原因是从电脑中导出的 todo.txt 的内容是这样的:

===== Projects =====

--- Test ---

[1;33m15 Test @Test [0m

而实际应该的 todo.txt 应该是这样:

(A) Test +Test @Test

问题出在哪呢?实际上作者这个 workflow 的产生的 display.txt(也就是我改名为 todo.txt 的文件),仅仅是为了让 Geektool 捕捉并显示在桌面的,而真正的 todo.txt 源文件则存在

/Users/USERNAME/Library/Application Support/Alfred 2/Workflow Data/com.jx.todo.alfred

那么如何同步这个真正的 todo.txt 呢?最直接的办法就是将这个 com.jx.todo.alfred 文件夹映射到 Dropbox 目录中,使用 MacdropAny 很简单地完成了这步操作。至此,部署工作算是完成了,既能在电脑桌面使用 display.txt 以 project 的方式展示 todo list,又能通过 Dropbox 同步原始的 todo.txt

至于使用 Dropbox 同步的翻墙问题,在 Mac 上我采用的是 Shadowsocks+GoagentX,在 iPhone 上则是使用 VPN+AnyConnect。

推荐一下原楼主的 Github Page


补充:这个 Geektool 在使用的过程中发现无法实现开机自启动(即使你打了那个勾也没用),Google 一下就有方法了,轻松愉快,打开 Applescript,输入:

tell application "GeekTool Helper" to activate

保存为应用程序,添加到启动项就可以了。

一个有关“Todo.txt”的想法

发表评论

Fill in your details below or click an icon to log in:

WordPress.com 徽标

您正在使用您的 WordPress.com 账号评论。 注销 /  更改 )

Facebook photo

您正在使用您的 Facebook 账号评论。 注销 /  更改 )

Connecting to %s