回答:
スキップ機能org-agenda
を使用して、特定のエントリのスキップをカスタマイズできます。これは、各見出しで評価される関数(またはlisp形式)であり、nil
(見出しをスキップしないように)返すか、検討する次の見出しのポイント(通常は次の見出しですが、たとえば検索を高速化する次の兄弟)。
この場合、特定のタグが付けられており(でそれらを取得org-get-tags-at
)(current-time)
、特定の時間が経過すると見出しをスキップする関数が必要になります。
(defun skip-tag-after (tag hour)
(let* ((next-headline (save-excursion
(or (outline-next-heading) (point-max))))
(current-headline (or (and (org-at-heading-p)
(point))
(save-excursion (org-back-to-heading))))
;; (now (decode-time (current-time)))
(target (decode-time (current-time)))
(day (nth 6 target))
)
(setcar (last target 7) hour)
(setcar (last target 8) 0)
(if (and (member tag (org-get-tags-at current-headline))
(or (eq day 0)
(eq day 6)
(time-less-p (apply #'encode-time target) (current-time))))
next-headline
nil)))
これは平日を考慮していませんが、そのロジック
(setq (setq org-agenda-skip-function-global '(skip-tag-after "WORK" 17))
すべての議題でそのような見出しをグローバルにスキップするか、その議題のみに影響を与えるorg-agenda-skip-function
ようにa内でローカルに設定することができますorg-agenda-custom-command
。
org-agenda-skip-function
たとえば、次のように設定することにより、lispフォームを値として使用できます(or (skip-tags-after "WORK" 17) (skip-tags-after "HOME" 9))
非常に簡単な回避策は、夜と週末にのみ使用する特別な議題ビューを作成することです。
非常に単純な例として、のorg-agenda-custom-commands
ようなものを追加してカスタマイズできます("x" "No Work" tags-todo "-work" nil)
。その後、夕方と週末にを使用して、全体の議題ビューを表示できますC-c a x。
org-agenda-custom-commands
また、カスタム関数を設定することもできます...希望if
どおりに行うことは間違いなく可能です(シンプル)が、elispを正確に表示するのに十分な知識はありません。
org-agenda-skip-function
。-また、あなたはに依存している3(3)主な機能のどれを指定してくださいorg-agenda-list
、org-search-view
またはorg-tags-view
。