如何设置org-mode中各个任务的信赖关系,使用org-edna插件

缘起

任务设置了多了之后,如果在一开始把一个wbs中的所有细节,或部分细节定义好的话,那么在agenda中会出现很多的任务。我的想法是实现在前置任务完成后,后置任务在在agenda中出现。

实现的方式是org-edna,这个插件是很早就知道,以前也装过,但是文档初读没读懂,这次狠下心读了下。

说明

https://www.nongnu.org/org-edna-el/

属性

信赖关系通过设置属性来实现

  • :BLOCKERS: 列出的条件任务不为DONE时,本个任务就是block状态,就是无法设置成DONE
  • :TRIGGER: 当所在任务成为DONE时,要执行的动作

举例

* TODO Put clothes in washer

  SCHEDULED: <2017-04-08 Sat 09:00>
  :PROPERTIES:
  :TRIGGER: next-sibling scheduled!("++1h")
  :END:
* TODO Put clothes in dryer
  :PROPERTIES:
  :TRIGGER: next-sibling scheduled!("++1h")
  :BLOCKER:  previous-sibling
  :END:

当第一个任务变成DONE时,将下一个任务schedule时间加1小时。 第二个任务在第一个任务不变成DONE之前,都是block状态

finders

只说目前用到的,更多的可以看官方文档

  • todo!(NEW-STATE) 把任务设置成指定状态
    ​* TODO Heading 1
      :PROPERTIES:
      :TRIGGER: next-sibling todo!(TODO)
      :END:
    ​* Heading 2
    

这种设置可以让heading2在heading1完成之前,不在org-agenda中显示出来。 当heading1完成后,将heading2设置为TODO

海上一民工

Related