Как заархивировать все выполненные задачи с помощью одной команды - PullRequest
47 голосов
/ 09 августа 2011

Для архивирования выполненных задач я использую

C-c C-x a

команда. Недостатком является то, что я должен вручную перемещаться по выполненным задачам по одной, а затем архивировать их.

Как заархивировать все выполненные задачи с помощью одной команды.

Ответы [ 5 ]

51 голосов
/ 09 августа 2011

Вы можете выполнить массовый архив (или перекомпилировать / изменить задачу и т. Д.) В представлении повестки дня.

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

Если вы вызываете Org-Agenda из буфера, который хотите заархивировать, вы можете временно ограничить его только этим буфером и просматривать только записи todo и фильтровать только DONE

C-c a < t
N r

Где N соответствует ярлыку для вашего состояния DONE (с состояниями по умолчанию это будет 2)

Тогда вам просто нужно отметить все нужные заголовки и общий архив

m (mark for bulk action)
B a (or B $ for arch->sibling)
34 голосов
/ 20 ноября 2014

Вот исправленная версия фрагмента Мадалу. Обратите внимание, что эта версия также работает только с текущим поддеревом (измените файл «назад к дереву» для работы со всем файлом).

(defun org-archive-done-tasks ()
  (interactive)
  (org-map-entries
   (lambda ()
     (org-archive-subtree)
     (setq org-map-continue-from (outline-previous-heading)))
   "/DONE" 'tree))
31 голосов
/ 10 августа 2011

Вы можете написать функцию, используя org-map-entry:

(defun my-org-archive-done-tasks ()
  (interactive)
  (org-map-entries 'org-archive-subtree "/DONE" 'file))
5 голосов
/ 01 февраля 2017

Также из http://orgmode.org/manual/Moving-subtrees.html#Moving-subtrees

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

Проверьте, могут ли какие-либо прямые дочерние элементы текущего заголовка быть перемещены в архив.Для этого каждое поддерево проверяется на наличие открытых записей TODO.Если ничего не найдено, команда предлагает переместить его в расположение архива.Если курсор не находится в заголовке, когда вызывается эта команда, будут проверены деревья уровня 1.

1 голос
/ 20 ноября 2014

Если вы хотите сделать это в исходном буфере организации (в отличие от представления повестки дня организации), и если они следуют друг за другом, вы можете выбрать все из них в регионе и применить команду (например, Cc Ct d).

Требуется только настройка:

;; Some commands act upon headlines in the active region.
(setq org-loop-over-headlines-in-active-region 'start-level)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...