Skip navigation.

=[零舍X设涂社]=

imick is a bragger (not a blogger) ... 他Comic,Manga一把抓 ...

纯文本ToDo-List管理器:todo.sh

, ,

不知道大家听说过Lifehacker没?这是一个由女黑客Gina Trapani创立的致力于借助软件与网络或任何就手的工具来提高效率的网站,上面介绍了很多好玩有趣的东西。Gina本人也经常写一些短小而有用的程序,我已经用上的有Better Gmail和Better GReader这两个Gmail和Google Reader的Firefox增强插件,另外这一系列的还有Better Flickr和Better GCal,因为我比较少用这两个服务,暂时还没有用到。而最近我尝试的Gina荣誉出品的东西就是这个:纯文本的ToDo-List管理器:todo.sh(http://todotxt.com/),之前MetalDuDu跟我推介过,但最近给自己的台式机装上Ubuntu 7.04才开始试验这个东西。经过了解之后才发现这不是一般的ToDo-Lister,Gina还给它融入了GTD的概念,它有以下的功能:

  • Context 上下文检索。就如David Allen建议的那样把你的任务根据性质来分类,可以很简单的在你的任务前加“@email”代表要写的email,“@phone”代表要打的电话,“@home”代表要干的家事等等。

  • Project 项目管理。除了可以根据任务性质来分类,还可以给任务所属的项目来分类。你可以像Gina那样(下面的视频有演示)给分属于不同项目的任务前加上p:[任务名](p代表project)。

  • Priority 优先顺序排列。你还可以给你的任务加上优先级别,这样你可以先攻克需要优先处理的事务。

而除了以上的根据GTD革新的特点外,纯文本的程序还有多多好处,不用调用什么图形库,运行当然是飞一样的快啦,反应也是一流,所有的资料都存储为纯文本,精简高效,也不用考虑兼容性的问题,而经过精心的编排,纯文字输出也可以很赏心悦目。

如果你开始有点兴趣了,接下来我们聊聊安装设置问题:

第一步:首先先把程序文件给拉下来(http://todotxt.com/library/todo.sh/),里面包含有todo.sh这个主程序和.todo这个设置文件,todo.sh是一个Unix的shell script。

第二步:接下来你得在你的系统里实现Unix或类Unix的环境,这包括了Unix,Linux,Mac的Darwin,FreeBSD等等,如果你的系统是Windows,那么有一点点麻烦,你需要安装一个Unix的模拟环境,这个方向下最受欢迎的Cygwin,我一直用它,是个很棒的玩意。但如果你对它没兴趣(安装一个cygwin的最精简版本需要50来兆),而只想试试todo.sh这个软件,你可以试试它的Python版本,关于这个的讨论请跳到后面有关todo.sh的Python应用部分。

第三步:用你最喜欢的文本编辑器打开.todo文件,找到下面这行:

# Your todo.txt directory
TODO_DIR="/Users/gina/Documents/todo"  

将其中的“/Users/gina/Documents/todo“改为你的todo.txt(就是存储ToDo-List的文件)的位置。

第四步:赋予todo.sh执行权限:

$ chmod +x todo.sh

第五步:将.todo这个配置文件移动到你的家目录(以我为例就是/home/imick或者更简捷的表示为~/):

$ mv .todo ~/.

这样就可以开用了,用法很简单,参看Gina的演示就好:

http://www.youtube.com/watch?v=daJ1Hs_y738

注意在这里Gina首先将todo.sh所在目录加入路径里,这样不管在哪个目录都可以执行这个脚本了,具体做法是在你的~/.bashrc(Linux),或~/.bash_profile(Mac),又或~/.profile(Cygwin)加入:

PATH=$PATH:"/path/to/your/todo/scripts"

然后又用alias命令将todo.sh精简为t,同样在你的~/.bashrc(Linux),或~/.bash_profile(Mac),又或~/.profile(Cygwin)加入:

alias t='todo.sh -d /path/to/your/.todo'

最后回到开始那个命题,如果你是在Windows下而又不想在Windows下模拟Unix环境,怎么用这个脚本呢?你可以试试这个脚本的Python版本(http://todotxt.com/library/todo.sh/todo.py),那就意味着你得满足另外一个条件,你机子得装一个Python的解释器,为了试验我装了最新版的Python 2.5.1,装好大概30兆,比Cygwin最简版本的50来兆小了不少。然后python todo.py就可以运行这个程序。但新的问题出现了,如果每次管理ToDo-List都得按python todo.py这么长一段不得麻烦死?DOS下又没有alias这个命令,该怎么将python todo.py简化成简单的一个t呢?解决方法还是有的,但有点麻烦,不过客官已经看到这里了,就请继续忍耐下去吧,步骤有三:

  1. 用doskey命令,在DOS终端下输入下面的代码(当然,在这之前你得把todo.py放在PATH能搜索到的目录下):

    doskey t=todo.py $*
    

    这里$*代表跟在todo.py后面的全部变量,所以系统就会把输入给todo.py的变量通通传送给t了。

    完成这一步就可以用t代替todo.py了,但这个设置每次重新开启DOS终端时会被重置,所以我们还需要将这个设置写入一个随DOS终端启动而自动加载的批处理文件里。

  2. 新建一个文件,假设命名为auto.bat,用文本编辑器打开,然后加上上面那行doskey t=todo.py $*。随便将它放哪吧,我把它放在了C:\下。

  3. 打开注册表编辑器(Start->Run...在新开窗口里输入regedit),修改[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor]下的“AutoRun”的键值为你的“auto.bat”文件的保存路径(我的例子就会是C:\auto.bat)。

    完成这个设置后每次开一个新的DOS终端窗口,auto.dat的内容就会被装载,我们就可以用t来召唤我们的ToDo-List管理器了,乌拉!不过因为是DOS,所以没有彩色代码功能,设优先值时颜色是显示不出来的,Windows下还是有一点限制的。

    在试验中发现todo.py在以上所说无Unix环境的Windows应用上的一个bug,在源程序的第291行if (args): add("".join(args))应为if (args): add(" ".join(args)),双引号里应该有个空格,如果不是这样,你记的任务里的空格都会被忽略掉。

http://todotxt.com/网站上还有围绕todo.sh开发的各种辅助产品,我看中了这个:birdseye,它可以对你的todo.txt和done.txt做美妙的展示:


写了这么多,总结陈词:Gina,You Rule!!

启用GTD系统超强的忍耐力【转】

How to use Quote function:

  1. Select some text
  2. Click on the Quote link

Write a comment

Comment
(BBcode and HTML is turned off for anonymous user comments.)

If you can't read the words, press the small reload icon.


Smilies

December 2009
S M T W T F S
November 2009January 2010
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31