我的Org文件中有几个任务,其中一项包含以复选框开头的项目(但仅限于那些)。它们的末尾都有一个统计cookie([n / m])。
我正在寻找一种方法来自动更新父任务TODO
到DONE
一旦所有的复选框被标记为要做的事。
该文件说:
如果您希望所有孩子都完成后一个TODO条目自动更改为DONE,则可以使用以下设置[...]
另一种可能性是使用复选框来标识大量子任务(层次结构)(请参阅复选框)。
我了解的最后一部分是,如果子项是复选框,则父状态应该已经自动更新(事实并非如此)。
我想念什么?
编辑:
从org-after-todo-statistics-hook
的文档(org.el):
在更新TODO统计cookie后调用的挂钩。每个函数用两个参数调用:未完成的条目数和完成的条目数。
这意味着从orgmode.org提出的代码:
(defun org-summary-todo (n-done n-not-done)
"Switch entry to DONE when all subentries are done, to TODO otherwise."
(let (org-log-done org-log-states) ; turn off logging
(org-todo (if (= n-not-done 0) "DONE" "TODO"))))
(add-hook 'org-after-todo-statistics-hook 'org-summary-todo)
将不计算复选框项目。
就在这里。忘了提那一点我的坏。
—
Mathieu Marques
我认为这种误解来自组织手册,在这种情况下还不是很清楚。以“另一种可能性是使用复选框...”开头的行是标题为“将任务分解为子任务”的新段落。我认为这种情况下的“另一种可能性”是指将任务分解为子任务的另一种可能性,而不是自动改变TODO状态的另一种可能性。也许尝试他们建议的功能并挂上钩(尽管我无法将其发送给wokr)
—
elethan
@elethan我想这实际上是有道理的。是的,请参阅我的编辑内容:)
—
Mathieu Marques
* Heading [0/1]