2011-08-09 17 views
36

Aby archiwizować Sporządzono zadań używam poleceniaJak archiwizować wszystkie zrobione zadania za pomocą jednego polecenia

C-c C-x a 

. Wycofanie to ręczne przesuwanie po zadaniach DONE jeden po drugim, a następnie archiwizowanie go.

Jak zarchiwizować wszystkie wykonane zadania za pomocą pojedynczego polecenia.

+0

Po prostu zauważyłem, że uruchomienie 'M-x org-archive-subtree C-x-z' (keep naciskając z) jest zbliżone do jednego rozwiązania polecenia. Nie jestem pewien, czy to pomoże każdemu :) – bgs

Odpowiedz

28

Można napisać funkcję używając org-MAP-wpisów:

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

+1 za wprowadzenie do niesamowitych funkcji. –

+0

Umożliwia to pomijanie równych podpozycji w trakcie archiwizacji. Wygląda na to, że należy użyć zmiennej org-map-continue-from (nie mam pojęcia, jak z nich korzystać). Oto tekst z pomocy "Po ocenie kursor będzie przeniesiony na koniec wiersza (prawdopodobnie z nagłówka przetworzonego wpisu ) i wyszukiwanie będzie kontynuowane od tego miejsca." ... "W takich przypadkach możesz może określ położenie, od którego powinno się kontynuować wyszukiwanie, ustawiając zmienną 'org-map-continue-from 'na na pożądaną pozycję bufora ." –

+1

możesz również użyć 'org-archive-all-done' – ifree

39

Możesz zbiorczo archiwizować (lub odnawiać/zmieniać dane itd.) Z poziomu widoku Agenda.

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

Jeśli zadzwonisz Org-agendę od wewnątrz bufora chcesz zarchiwizować można czasowo ograniczyć ją tylko do tego bufora i wyświetlić tylko todo wpisy i filtrem do tylko Sporządzono

C-c a < t 
N r 

Gdzie N odpowiada skrótowi dla Twojego stanu DONE (z domyślnymi stanami to 2)

Następnie wystarczy zaznaczyć wszystkie pożądane nagłówki i archiwum zbiorcze

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

Dzięki za odpowiedź. Mała sugestia. Proszę skorygować organizację org krótko jako "C-ca" zamiast "C-c C-a", ponieważ nowicjusze przeważnie przestrzegają instrukcji org, w której "C-ca" jest używane jako skróty org-agenda. –

+0

@Talespin_Kit Ups, to miało być C-c a, po prostu źle to napisałem. Dzięki za złapanie tego. –

+1

Nie mogę uzyskać znaku towarowego dla działania zbiorczego do pracy ... żadnych pomysłów? – I82Much

23

Oto poprawiona wersja fragmentu madalu użytkownika. Zauważ, że ta wersja działa tylko w bieżącym poddrzewie (zmienia plik "drzewo z powrotem na", aby działał na całym pliku).

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

To jest poprawna odpowiedź. Ponadto, jeśli użyjesz "agendy" zamiast "pliku", to będzie ono dotyczyło wszystkich zarejestrowanych plików porządku. Idealny! –

1

Jeśli chcesz to zrobić w buforze Org źródłowego (w przeciwieństwie do w widoku Harmonogramu org), a jeśli oni naśladują się nawzajem, można wybrać wszystkie z nich w danym regionie, i zastosować polecenie (takie jak Cc Ct d).

Jedynym ustawieniem potrzebne:

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

Również z http://orgmode.org/manual/Moving-subtrees.html#Moving-subtrees

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

Sprawdź, czy jakiekolwiek bezpośrednie dzieci bieżącym nagłówkiem mogłyby zostać przeniesione do archiwum. Aby to zrobić, każde poddrzewo jest sprawdzane pod kątem otwartych wpisów TODO. Jeśli żaden nie zostanie znaleziony, polecenie oferuje przeniesienie go do lokalizacji archiwum. Jeśli po wywołaniu tego polecenia kursor nie znajduje się na nagłówku, zostaną sprawdzone drzewa poziomu 1.

Powiązane problemy