Я хочу отслеживать привычки, используя org-mode. Например, я хочу заниматься упражнением 3 раза в неделю. Есть ли способ запланировать 3 раза задачу каждую неделю независимо от даты в орг-режиме?
Еженедельные повторяющиеся задачи emacs org-mode
Ответ 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>
Это не так уж и чисто, но он работает.