每周重复任务的emacs org-mode

18

我希望使用org-mode来追踪习惯,例如,我希望每周运动3次。在org-mode中是否有一种方法可以安排每周执行3次任务而不考虑日期?


看起来你应该创建3个习惯节点,并在一周内安排它们。我会想办法的。 - pmr
http://orgmode.org/manual/Repeated-tasks.html#Repeated-tasks - N.N.
3个回答

27
你应该能够使用org习惯追踪来做到这一点(详见:Org-Habits)。
要加载org-habits,你需要将其添加到org-modules中。
(add-to-list 'org-modules "org-habit")

然后:

  1. 使用C-c C-s设置SCHEDULED
  2. 使用C-c C-t设置你的TODO练习。
  3. 使用C-c C-x p来添加STYLE属性habit(也可以按需添加其他属性)。

现在,这些行应该在标题后追加:

:PROPERTIES:
:STYLE: habit
:END:
一个习惯足矣,它不一定要每周做3次,但随着时间的推移,平均下来确实会达到这个频率。 如果您使用一个预定的重复器 .+2d/3d,您将被提示执行该习惯,但不会超过每两天一次,也不会少于每三天一次。(如果您长期坚持,这将平均每周完成2.9次。在6周(42天)内,您至少会完成14次,最多21次,平均完成17.5次。而在6周内完成18次,则是每周3次)。
您的最终习惯应该开始看起来像这样,当您完成DONE记录时,最后一次重复的情况将作为属性进行跟踪:
** TODO Exercise
SCHEDULED: <2012-01-06 Fri .+2d/3d>
:PROPERTIES:
:STYLE: habit
:END:

注意: 如果在尝试加载org-habit模块时出现Symbol's value as variable is void: org-modules错误,你可以尝试以下操作:

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

如果一周中的特定时间很重要,那么每周重复三个习惯(+1w)也可以,但是习惯跟踪不太清晰。也许需要子任务?我得试试。 - mike
请为我执行以下代码:(add-to-list 'org-modules 'org-habit) - Josh.F

0

您可以按照手册中的描述,使用带有重复间隔的时间戳。

 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>

@pmr:哦,你说得对,我误解了OP的问题。 - Daimrod

0

我看不到用一个条目完成这个任务的方法。我通常做类似的事情是为其创建一个特殊的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>

虽然不太简洁,但是它能用。


我理解上述内容并不独立于日期。我猜实现这一点最简单的方法是使用待办事项依赖 - Vernon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接