2011-08-09 16 views
36

存檔完成的任務歸檔的所有完成的任務,我使用如何使用單個命令

C-c C-x a 

命令。退後一步,我必須逐個手動移動完成的任務,然後將其歸檔。

如何使用單個命令將所有DONE任務歸檔。

+0

只要注意到運行'M-x org-archive-subtree C-x-z'(按住z)接近一個命令解決方案。不知道這是否有助於任何人:) – bgs

回答

28

可以使用ORG-地圖輸入寫一個函數:

(defun my-org-archive-done-tasks() 
    (interactive) 
    (org-map-entries 'org-archive-subtree "/DONE" 'file)) 
+0

+1,用於介紹真棒功能。 –

+0

這是在歸檔時跳過偶標題。似乎應該使用org-map-continue-from變量(我還沒有想出如何使用它們)。這裏是幫助文本「在評估之後,光標將被移動到行尾(大概是 已處理條目的標題)並且繼續搜索。」...「在這種情況下,您可以使用 可以將 通過設定 FUNC將變量'org-map-continue-from'設置爲期望的緩衝區位置 的位置來指定搜索應繼續的位置。 –

+1

你也可以使用'org-archive-all-done' – ifree

39

您可以在議程視圖中批量歸檔(或重寫/更改待辦事項等)。

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

如果從緩存中調用組織,議程要存檔,您可以暫時將其限制爲僅緩衝區,只能查看待辦事宜條目和過濾器只是做

C-c a < t 
N r 

在哪裏N對應於您的DONE狀態的快捷方式(默認狀態爲2)

然後,您只需標記所有需要的標題和批量存檔

m (mark for bulk action) 
B a (or B $ for arch->sibling) 
+1

感謝您的答案。一個小建議。因爲新手的大部分都遵循org-manual,其中「C-ca」被用作org-agenda的捷徑,所以請把org-agenda簡稱爲「C-ca」而不是「C-c C-a」。 –

+0

@Talespin_Kit哎呀,那是爲了C-C而寫的。感謝您的支持。 –

+1

我無法獲得批量操作的效果......任何想法? – I82Much

23

這裏的madalu的片斷的修正版本。請注意,此版本也僅對當前子樹進行操作(將「樹回到」文件以對整個文件進行操作)。

(defun org-archive-done-tasks() 
    (interactive) 
    (org-map-entries 
    (lambda() 
    (org-archive-subtree) 
    (setq org-map-continue-from (outline-previous-heading))) 
    "/DONE" 'tree)) 
+3

這是正確的答案。另外,如果您使用「議程」範圍而不是「文件」,那麼它將應用於所有已註冊的議程文件。完善! –

1

如果你想這樣做的源組織緩衝液(如在組織議程視圖反對),如果他們跟隨對方,你可以在一個區域全部選中,並應用命令(如Cc Ct d)。

設置只需要:

;; Some commands act upon headlines in the active region. 
(setq org-loop-over-headlines-in-active-region 'start-level) 
1

而且從http://orgmode.org/manual/Moving-subtrees.html#Moving-subtrees

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

檢查當前標題的任何直接的孩子可能被移動到存檔。爲此,每個子樹都會檢查打開的TODO條目。如果沒有找到,則該命令提供將其移動到歸檔位置。如果在調用該命令時光標不在標題上,則會檢查1級樹。