Еженедельные повторяющиеся задачи emacs org-mode

Я хочу отслеживать привычки, используя org-mode. Например, я хочу заниматься упражнением 3 раза в неделю. Есть ли способ запланировать 3 раза задачу каждую неделю независимо от даты в орг-режиме?

Ответы

Ответ 1

Вы должны иметь возможность более или менее делать это с помощью отслеживания привычек сообщества (см. Org-Habits).

Чтобы загрузить org-привычки, вам нужно добавить его в org-modules

(add-to-list 'org-modules "org-habit")

Тогда:

  • Используйте C-c C-s для установки SCHEDULED.
  • Используйте C-c C-t, чтобы установить упражнение TODO.
  • Используйте C-c C-x p, чтобы иметь STYLE Свойство habit (добавьте также любые другие свойства).

Теперь строки, подобные этому, должны быть добавлены после названия:

:PROPERTIES:
:STYLE: habit
:END:

Одной привычки должно быть достаточно, это будет не ровно 3 раза в неделю, но со временем это будет усреднено. Если вы используете запланированный ретранслятор, который .+2d/3d, вам будет предложено выполнять привычку не чаще, чем каждый второй день, и не реже, чем каждые 3. (Это составляет 2,9 раза в неделю, если вы продолжаете это достаточно долго Более чем через 6 недель (42 дня) вы должны заполнить его как минимум 14 раз, максимум 21 или 17,5 в среднем, 18 раз в 6 недель - 3 раза в неделю).

Ваша последняя привычка должна выглядеть примерно так, как только вы ее завершите. DONE будет добавлен журнал, и последний-повтор будет отслеживаться как свойство:

** TODO Exercise
SCHEDULED: <2012-01-06 Fri .+2d/3d>
:PROPERTIES:
:STYLE: habit
:END:

Примечание. Если вы получаете ошибку Symbol value as variable is void: org-modules при попытке загрузить модуль org-habit, вы можете попробовать следующее:

(require 'org)
(require 'org-install)
(add-to-list 'org-modules "org-habit")

Ответ 2

Вы можете использовать временную метку с интервалом повторителя, как описано в manual.

 A timestamp may contain a _repeater interval_, indicating that it
 applies not only on the given date, but again and again after a
 certain interval of N days (d), weeks (w), months (m), or years
 (y).  The following will show up in the agenda every Wednesday:

      * Pick up Sam at school <2007-05-16 Wed 12:30 +1w>

Ответ 3

Я не вижу никакого способа сделать это с одной записью. То, как я делаю подобные вещи, - создать специальную последовательность TODO для, например, (sequence ('HABIT' '|' 'CHECK')) с setq org-todo-keywords

Затем просто напишите три записи, каждый раз в неделю повторите

* HABIT Monday workout
  DEADLINE: <2012-01-09 Mon +1w>
* HABIT Wednessday workout
  DEADLINE: <2012-01-11 Wed +1w>
* HABIT Friday workout
  DEADLINE: <2012-01-06 Fri +1w>

Это не так уж и чисто, но он работает.