Skip to content

Instantly share code, notes, and snippets.

@chupaaaaaaan
Last active May 14, 2020 13:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save chupaaaaaaan/bcb59977bd729fb321dc6920a8ad4e3e to your computer and use it in GitHub Desktop.
Save chupaaaaaaan/bcb59977bd729fb321dc6920a8ad4e3e to your computer and use it in GitHub Desktop.
Org-habitの、'.+' '++' '+' の振る舞いの違いについて

はじめに

Org-habitを使おうとしたときに、躓いたのでメモ。 公式マニュアルには、以下のような記述がある。

The TODO has a scheduled date, usually with a ‘.+’ style repeat interval. A ‘++’ style may be appropriate for habits with time constraints, e.g., must be done on weekends, or a ‘+’ style for an unusual habit that can have a backlog, e.g., weekly reports.

英語力が低いだけだと思うが、 .++++ でどう振る舞いが変わるのかがよくわからなかった。 なので、実験してみる。

DONEにする前後での振る舞い

以下は、2020/05/13(水)に実施した。

DONEにする前

** TODO 習慣タスク-日次1
   SCHEDULED: <2020-05-01 金 .+1d>

** TODO 習慣タスク-日次2
   SCHEDULED: <2020-05-01 金 ++1d>

** TODO 習慣タスク-日次3
   SCHEDULED: <2020-05-01 金 +1d>

** TODO 習慣タスク-週次1
   SCHEDULED: <2020-05-01 金 .+1w>

** TODO 習慣タスク-週次2
   SCHEDULED: <2020-05-01 金 ++1w>

** TODO 習慣タスク-週次3
   SCHEDULED: <2020-05-01 金 +1w>

(org-agenda経由で) DONEにした後

** TODO 習慣タスク-日次1
   SCHEDULED: <2020-05-14 木 .+1d>

** TODO 習慣タスク-日次2
   SCHEDULED: <2020-05-14 木 ++1d>

** TODO 習慣タスク-日次3
   SCHEDULED: <2020-05-02 土 +1d>

** TODO 習慣タスク-週次1
   SCHEDULED: <2020-05-20 水 .+1w>

** TODO 習慣タスク-週次2
   SCHEDULED: <2020-05-15 金 ++1w>

** TODO 習慣タスク-週次3
   SCHEDULED: <2020-05-08 金 +1w>

考察

比較

  • .+ については、DONEにすると、DONEにした日 (2020/05/13 (水)) を起点にして、翌日もしくは翌週がセットされる。
  • ++ については以下の振る舞いとなった。
    • 日次の方は、 .+ の場合と同じ。
    • 週次の方は、 DONEにした日を起点にして、予めセットした日 (2020/05/01 (金)) と同じ曜日の日で直近の日がセットされる。
  • + については、予めセットした日 (2020/05/01 (金)) を起点にして、翌日もしくは翌週がセットされる。

どう使えばよいか?

公式マニュアルの通り、以下のように使えばよい。 なお、予定されたTODOを必ずその日にこなすのであれば (遅延などがないのであれば) 、どれを選んでも差は出ない (はず) 。

.+
とりあえずこれを選んでおけば良い。
++
毎週○曜日に実施する、といった場合。 (日次の場合は効果がない)
+
その日の分、その週の分を実施することが求められる場合。 (週次レポートは、その週に出したら以前のものを出さなくて良い、ということにはならない)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment