如何使用单个命令归档所有DONE任务

Tal*_*Kit 51 org-mode

存档我正在使用的DONE任务

C-c C-x a
Run Code Online (Sandbox Code Playgroud)

命令.退回是我必须逐个手动移动DONE任务然后归档它.

如何使用单个命令归档所有DONE任务.

Jon*_*pin 51

您可以在"日程"视图中批量存档(或重新/更改待办事项等).

http://orgmode.org/manual/Agenda-commands.html#Agenda-commands

如果从要归档的缓冲区中调用Org-Agenda,则可以暂时将其限制为仅缓冲区并仅查看待办事项条目并仅过滤DONE

C-c a < t
N r
Run Code Online (Sandbox Code Playgroud)

其中N对应于DONE状态的快捷方式(默认状态为2)

然后,您只需要标记所有想要的标题和批量存档

m (mark for bulk action)
B a (or B $ for arch->sibling)
Run Code Online (Sandbox Code Playgroud)

  • 谢谢你的回答。一个小建议。请将组织议程的缩写更正为“C-ca”而不是“Cc Ca”,因为新手大多遵循组织手册,其中“C-ca”用作组织议程的快捷方式。 (2认同)
  • 在 org-mode 8.2.3c 版本中,`B $` 用于存档,`BA` 用于存档 -&gt; 兄弟。 (2认同)

Ste*_*alt 38

这是madalu片段的更正版本.请注意,此版本仅对当前子树进行操作(将"树返回"文件更改为对整个文件进行操作).

(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))
Run Code Online (Sandbox Code Playgroud)

  • 这是正确的答案.此外,如果您使用''agenda`范围而不是''file`,那么它将适用于所有已注册的议程文件.完善! (7认同)

小智 30

您可以使用org-map-entries编写函数:

(defun my-org-archive-done-tasks ()
  (interactive)
  (org-map-entries 'org-archive-subtree "/DONE" 'file))
Run Code Online (Sandbox Code Playgroud)

  • 正如@Talespin_Kit所提到的,这个答案有一个错误,跳过每隔一个DONE条目.[Stefan的答案在下面](http://stackoverflow.com/a/27043756/244935)修复了它并且那个对我来说正常. (2认同)
  • 如果这个答案有错误,是否应该将其取消标记为已接受的答案,并接受有效的答案? (2认同)

Geo*_*los 6

同样来自http://orgmode.org/manual/Moving-subtrees.html#Moving-subtrees

C-u C-c C-x C-s

检查是否可以将当前标题的任何直接子级移至存档中。为此,检查每个子树中是否有打开的TODO条目。如果未找到,则命令将其移至存档位置。如果调用此命令时光标不在标题上,则将检查1级树。