每周重复任务emacs org-mode

时间:2012-01-05 23:13:12

标签: emacs org-mode schedule

我想使用org-mode跟踪习惯。例如,我想每周做3次运动。有没有办法每周安排3次任务而不管org-mode中的日期是什么?

3 个答案:

答案 0 :(得分:24)

您应该能够或多或少地使用组织习惯跟踪来做到这一点(参见: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(根据需要添加任何其他属性)。
  4. 现在应该在标题后附加这样的行:

    :PROPERTIES:
    :STYLE: habit
    :END:
    

    一个习惯就足够了,每周不会精确到3次,但随着时间的推移它会达到平均水平。如果您使用.+2d/3d的预定转发器,则会提示您不要经常每隔一天执行一次这种习惯,并且不会低于每3次。(如果您继续使用,则每周平均达到2.9次)足够长。超过6周(42天)你将完成它至少14次,最多21次,或平均17.5次.6周内18次将是每周3次。

    你的最终习惯最初看起来应该是这样的,当你完成它时,将添加DONE日志记录,并将last-repeat作为属性跟踪:

    ** 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")
    

答案 1 :(得分:0)

您可以使用带有转发器间隔的时间戳,如中所述 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>

答案 2 :(得分:0)

我看不到用一个条目做任何方法。我做类似事情的方法是为is创建一个特殊的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>

这不是那么干净,但它确实有效。