这是一个关于如何使用单个命令存档所有 DONE 任务的后续问题。
Stefan给出的解决方案适用于单个DONE语句。如何扩展它以使用多个 DONE 语句?
Stefan给出了以下解决方案:
(defun org-archive-done-tasks ()
(interactive)
(org-map-entries
(lambda ()
(org-archive-subtree)
(setq org-map-continue-from (org-element-property :begin (org-element-at-point))))
"/DONE" 'tree))
我有以下组织待办事项关键字:
(setq org-todo-keywords
'((sequence "TODO(t)" "NEXT(n)" "WAITING(w)" "PROJECT(p)" "|" "DONE(d)" "DELEGATED" "DEFERRED")))
目标是存档所有标记为"已完成"、"委派"或"延迟"的任务。我尝试使用此处所述的匹配,但无法使其正常工作。例如,我尝试过:
MATCH = "/DONE|/DELEGATED|/DEFERRED"
我是 elisp 的新手,感谢带有解释的解决方案。
语法有点晦涩难懂,但是如果我正确阅读了您链接到的页面,我认为(未经测试!(以下内容将起作用:
"/+DONE|+DELEGATED|+DEFERRED"
这与该页面上的最后一个示例非常相似:选择具有不为空 (!( 的TODO 属性 (/( 且该 TODO 属性的值为 DONE 或 DELEGATED 或 DEFERRED 的条目。