【问题标题】:Using org-capture-templates to schedule a TODO for the day after today使用 org-capture-templates 安排后天的 TODO
【发布时间】:2011-11-02 20:30:26
【问题描述】:

在 org-mode 中,我知道如何创建待办事项并使用时间戳,以便将其安排在今天。明天怎么安排?不幸的是,我不了解 Elisp,现在也没有时间学习它。这是我的 .emacs 文件:

 (setq org-capture-templates
      '(("t" "Agenda Todo" entry
     (file+headline "c:/Org/agenda.org" "Agenda")
     "\n\n** TODO %?\nSCHEDULED: <%<%Y-%m-%d %a>>" 
     :empty-lines 1)

我需要将 %m-%d %a 替换为增加一天的值。

【问题讨论】:

  • 当我创建我的捕获模板时,我真的想知道这一点,但直到现在才弄清楚。此外,如果您只是想要今天的日期, %t 将通过模板扩展为您提供相当于 > 的内容。 %^t 将提示输入日期,默认为今天。

标签: emacs org-mode


【解决方案1】:

根据 Juancho 的回答*,我能够想出一个有效的时间戳。

以下将提供组织创建的时间戳。

"[...]SCHEDULED: %(org-insert-time-stamp (org-read-date nil t \"+1d\"))" 

org-read-date 生成一个日期,+1d 将它移到未来的某一天。 nil t 告诉它不包含 HH:MM 时间并将日期转换为内部 TIME 表示。

org-insert-time-stamp 使用正常的 org-mode 格式(包括工作日缩写)将 TIME 转换为时间戳

*答案不起作用,因为 &lt;%(org-read-date nil nil \"+1d\")&gt;" 结果是 &lt;YYYY-MM-DD&gt;


更新

时间戳现在在 Org 模式下有效(添加它是为了允许从外部 org-mode 输入时间戳,我认为它们将无法自动计算星期几)。

因此,Juancho 的回答也可以。

【讨论】:

    【解决方案2】:

    这应该适用于您的模板字符串:

    "\n\n** TODO %?\nSCHEDULED: <%(org-read-date nil nil \"+1d\")>"
    

    org-read-date 生成时间戳; +1d 表示明天。

    【讨论】:

    • 我刚试过这个。它不起作用,因为时间戳要求一周中的哪一天对调度有效。
    【解决方案3】:

    此外,如果您想要一个可重复的模板,它会生成如下时间戳:

    SCHEDULED: <2012-08-17 Fri .+1d>
    

    你可以使用这个:

    SCHEDULED:%(org-insert-time-stamp (org-read-date nil t) nil nil nil nil \" .+1d\")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多