好久没有写了,文章的开头,照例还是要吹吹水的。
自从更新了基于org-mode的待办事项的管理模式后,感觉整个人都日益神清气爽起来。究其原因,大概是因为现在处理inbox.org和安排第二天的行程的时候,有一个相对可行的操作方法可以参考了,所以每次处理这两件事情的时候,也就没有那么纠结了。同时,还因为采取了一种尽量goal-oriented的TODO管理方法,最大程度上杜绝了一些不必要的TODO被收集起来,从而也减轻了内心的焦虑感。
言归正传,这篇文章是要讲一个我自定义的org-mode的Agenda视图的command的。这条命令是下面这样子的
1 | (setq org-agenda-custom-commands |
俗话说的好,要检验自己是不是懂得某个东西,只要看看自己能不能把这个东西给别人讲清楚就可以了。如果讲清楚了,没有哪里需要emmmm的地方,那么就可以认为这个东西基本上自己是真的懂得了。
那么org-agenda-custom-commands
是干嘛用的呢。官方文档的链接在这里:https://orgmode.org/worg/org-tutorials/org-custom-agenda-commands.html ——哎哟喂,其实如果你们身处在Emacs之中来看这篇文章的话,只要按下C-h v
,然后在minibuffer中输入org-agenda-custom-commands
的话,也就可以看到关于这个变量的说明了啦。不过上面这个文档的好处是它有附赠一些例子。
总而言之,org-agenda-custom-commands
是一个变量,通过给这个变量赋值,可以在org-mode
的Agenda视图中,添加一些自定义的功能及对应的快捷键。例如,如果在Emacs中求值我上面所给的Elisp代码,然后按下C-c a
,便会看到类似于下面这样的提示
这时候,如果按下f
键,Emacs就会按照上面代码中描述的那样找出所有关键字为TODO
的条目,然后按照【先优先级降序,然后时间戳升序】的方式来排列它们。在我的电脑上的效果如下图所示
可以看到,首先出现的条目是标注为最高的A优先级的两条,然后是在heading内容的开头含有时间戳的条目。
对我来说,这样的一个好处是可以将未处理过的TODO按照时间顺序列出来,从而避免了所有的TODO条目先是按照文件的名称集中起来,然后又按照它们在文件中的顺序从上往下地排列起来。毕竟文件内的TODO都是聚合在各自不同的更高级的heading之下的,它们之间的上下关系体现不出什么东西。