如何使用单个命令归档所有“完成/删除/延迟”任务

时间:2019-10-11 10:46:41

标签: org-mode

这是关于How to archive all the DONE tasks using a single command的跟进问题。

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")))

目标是存档标记为DONE,DELEGATED或DEFERRED的所有任务。我已尝试按照说明here使用匹配项,但是无法使其正常工作。我尝试了例如:

MATCH = "/DONE|/DELEGATED|/DEFERRED"

我是elisp的新手,感谢您提出解释的解决方案。

1 个答案:

答案 0 :(得分:0)

语法有点晦涩,但如果我正确阅读了链接到的页面,我认为(未经测试!)以下内容将起作用:

"/+DONE|+DELEGATED|+DEFERRED"

与该页面上的最后一个示例非常相似:选择条目的TODO属性(/)不是空(!),并且的TODO属性值为DONE或DELEGATED或推迟。