時間帯に基づいて特定のタグが付いたアイテムをアジェンダに表示しない


8

1日の特定の時刻以降に特定のタグが付いたアイテムを非表示にすることはできますか?たとえば、午後5時以降と週末に:WORK:アイテムが議題に表示されないようにしたいと思います。

編集:私はスケジュールされたアイテムを扱っており、org-agenda-list関数に依存しています。


はい。ただし、多くの締め切りがある場合やスケジュールされている場合は、少し遅くなります。投稿を編集(またはコメントを追加)して、締め切りとスケジュールのどちらを処理するか、および両方を評価するかを指定してください。私の心の中で、私は習慣を考えていますorg-agenda-skip-function。-また、あなたはに依存している3(3)主な機能のどれを指定してくださいorg-agenda-listorg-search-viewまたはorg-tags-view
弁護士リスト2016年

回答:


2

スキップ機能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


そのようなタグが複数ある場合はどうなりますか。1つは勤務時間用、もう1つは週7日夜用などです。それらすべてにフィルタリングを組み合わせるにはどうすればよいですか?
Alexander Shcheblikin 2017

org-agenda-skip-functionたとえば、次のように設定することにより、lispフォームを値として使用できます(or (skip-tags-after "WORK" 17) (skip-tags-after "HOME" 9))
erikstokes

3

非常に簡単な回避策は、夜と週末にのみ使用する特別な議題ビューを作成することです。

非常に単純な例として、のorg-agenda-custom-commandsようなものを追加してカスタマイズできます("x" "No Work" tags-todo "-work" nil)。その後、夕方と週末にを使用して、全体の議題ビューを表示できますC-c a x


これは私の現在の設定であり、機能しますが、代替案を検討していました。
David Gagnon

2
org-agenda-custom-commandsまた、カスタム関数を設定することもできます...希望ifどおりに行うことは間違いなく可能です(シンプル)が、elispを正確に表示するのに十分な知識はありません。
ブライアンZ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.