Подтвердить что ты не робот

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

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

C-c C-x a

команды. Обратный вывод - мне нужно вручную перемещать задачи DONE один за другим, а затем архивировать его.

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

4b9b3361

Ответ 1

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

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

Ответ 2

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

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)

Ответ 3

Здесь исправленная версия фрагмента 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))

Ответ 4

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

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

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

Ответ 5

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

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

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