在Linux命令行下进行时间管理
学习如何在命令行下用这些方法自己组织待办事项。
关于如何在命令行下进行时间管理getting things done(GTD)有很多讨论。不知有多少文章在讲使用 ls 晦涩的选项、配合 Sed 和 Awk 的一些神奇的正则表达式,以及用 Perl 解析一大堆的文本。但这些都不是问题的重点。
本文章是关于“如何完成”,在我们不需要图形桌面、网络浏览器或网络连接情况下,用命令行操作能实际完成事务的跟踪。为了达到这一点,我们将介绍四种跟踪待办事项的方式:纯文件文件、Todo.txt、TaskWarrior 和 Org 模式。
简单纯文本
我喜欢用 Vim,其实你也可以用 Nano。
最直接管理你的待办事项的方式就是用纯文本文件来编辑。只需要打开一个空文件,每一行添加一个任务。当任务完成后,删除这一行。简单有效,无论你用它做什么都没关系。不过这个方法也有两个缺点,一但你删除一行并保存了文件,它就是永远消失了。如果你想知道本周或者上周都做了哪些事情,就成了问题。使用简单文本文件很方便却也容易导致混乱。
Todo.txt: 纯文件的升级版
整洁,有条理,易用
这就是我们要说的 Todo.txt 文件格式和应用程序。安装很简单,可从 GitHub 下载最新的版本解压后并执行命令 sudo make install
。
也可以从 Git 克隆一个。
Todo.txt 可以很容易的增加新任务,并能显示任务列表和已完成任务的标记:
< 如显示不全,请左右滑动 >
命令 | 说明 |
---|---|
todo.sh add "某任务" | 增加 “某任务” 到你的待办列表 |
todo.sh ls | 显示所有的任务 |
todo.sh ls due:2018-02-15 | 显示2018-02-15之前的所有任务 |
todo.sh do 3 | 标记任务3 为已完成任务 |
这个清单实际上仍然是纯文本,你可以用你喜欢的编辑器遵循正确的格式编辑它。
该应用程序同时也内置了一个强大的帮助系统。
你可以使用语法高亮的功能
此外,还有许多附加组件可供选择,以及编写自己的附件组件规范。甚至有浏览器组件、移动设备应用程序和桌面应用程序支持 Todo.txt 的格式。
GNOME的扩展组件
Todo.txt 最大的缺点是缺少自动或内置的同步机制。大多数(不是全部)的浏览器扩展程序和移动应用程序需要用 Dropbox 实现桌面系统和应用程序直接的数据同步。如果你想内置同步机制,我们有……
Taskwarrior: 现在我们用 Python 做事了
花哨吗?
Taskwarrior 是一个与 Todo.txt 有许多相同功能的 Python 工具。但不同的是它的数据保存在数据库里并具有内置的数据同步功能。它还可以跟踪即将要做的任务,可以提醒某个任务持续了多久,可以提醒你一些重要的事情应该马上去做。
看起来不错
安装 Taskwarrior 可以通过通过发行版自带的包管理器,或通过 Python 命令 pip
安装,或者用源码编译。用法也和 Todo.txt 的命令完全一样:
< 如显示不全,请左右滑动 >
命令 | 说明 |
---|---|
task add "某任务" | 增加 “某任务” 到任务清单 |
task list | 列出所有任务 |
task list due :today | 列出截止今天的任务 |
task do 3 | 标记编号是3的任务为完成状态 |
Taskwarrior 还有漂亮的文本用户界面。
我喜欢 Vit, 它的设计灵感来自 Vim
不同于 Todo.txt,Taskwarrior 可以和本地或远程服务器同步信息。如果你希望运行自己的同步服务器可以使用名为 taskd
的非常基本的服务器,如果不使用自己的服务器也有好几个可用服务器。
Taskwarriot 还拥有一个蓬勃发展的插件和扩展生态系统,以及移动和桌面系统的应用。
在 GNOME 下的 Taskwarrior 看起来还是很漂亮的。
Taskwarrior 有一个唯一的缺点,你是不能直接修改待办任务的,这和其他的工具不一样。你只能把任务清单按照格式导出,然后修改导出文件后,重新再导入,这样相对于编辑器直接编辑任务还是挺麻烦的。
谁能给我们带来最大的希望呢……
Emacs Org 模式:牛X的任务收割机
Emacs 啥都有
Emacs Org 模式 是目前为止最强大、最灵活的开源待办事项管理器。它支持多文件、使用纯文本、高度可定制、自动识别日期、截止日期和任务计划。相对于我们这里介绍的其他工具,它的配置也更复杂一些。但是一旦配置好,它可以比其他工具完成更多功能。如果你是熟悉或者是 Bullet Journals 的粉丝,Org 模式可能是在桌面程序里最像Bullet Journals 的了。