我安排了例行程序在早上5:00醒来,并于今天早上5:12完成
如果显示该例程,则实际完成的时刻可能会更有帮助。
但是,不是。
更新:
更糟糕的是,计划的工作在重建议程后消失了,而不是显示为“完成”状态。
如何配置议程视图以显示实际的结束时间?
答案 0 :(得分:1)
DONE
状态的时间戳记未出现在您的org-agenda
中,因为它是无效的时间戳记。这是常规时间戳记与不活动时间戳记之间的区别:常规时间戳记会触发一个条目以显示在议程中,而非活动时间戳记则不会。这使我们找到了第一个潜在的解决方案(您已经尝试过):手动将这些不活动的时间戳更改为活动的时间戳。当org-agenda
解析活动时间戳记时,它会将当时关联任务的条目放入议程中。这里的问题是任务的TODO
状态为NEXT
,因为重复的任务已经转移到下一个任务。因此,org-agenda
条目将以NEXT
作为其状态,而不是DONE
。 (在这里值得注意的是,将非重复任务上的CLOSED
时间戳更改为活动状态不会导致它当时出现在议程中。)
或者,我们可以使组织议程向我们显示不活动的时间戳。有两种方法可以做到:
[
或]
,这将导致不活动的时间戳出现。org-agenda-include-inactive-timestamps
设置为t
,然后重新加载议程。这也不理想。再次,由于重复任务的待办事项状态改变,议程条目被标记为NEXT
。此外,(至少对我而言)该项目显示两次。其中一个来自日志,另一个来自LAST_REPEAT
属性。
幸运的是,org-agenda提供了更好的选项来查看使用org-agenda-log-mode
完成的任务的时间戳。在议程视图中,可以使用org-agenda-log-mode
(“ k”和“ m”之间的字母)激活l
。这仍然不足以显示重复的任务完成时间戳。默认情况下,org-agenda-log-mode
仅显示已关闭或已计时的任务。如上所述,此任务自转移至下一个重复项以来尚未关闭。但是,组织议程还能够显示状态已更改的任务的时间戳。由于已记录的任务从NEXT
更改为DONE
,因此其时间戳将显示在此视图下。我们可以通过几种不同的方式激活该视图:
org-agenda-log-mode
)调用C-u l
。state
添加到org-agenda-log-mode-items
,例如(setq org-agenda-log-mode-items '(closed clock state))
。org-agenda-start-with-log-mode
,例如(setq org-agenda-start-with-log-mode '(closed clock state))
。此选项将使议程从org-agenda-log-mode
开始,如果您始终希望在打开议程时看到此信息,它是最佳选择。应注意,虽然完成的任务将显示在此处,但仍将带有NEXT
标签。但是,它还会显示此时其状态已更改为DONE
(例如,请参见下面的最后一个图像)。
示例
作为示例,这是一个简短的org-mode
文件,其中包含重复任务(“唤醒”),该任务已经完成一次。出于演示目的,该文件还具有另一个尚未完成的重复任务,已关闭的一次性任务和尚未完成但已计入时钟的另一个计划任务:
#+SEQ_TODO: NEXT(n) TODO(t) | DONE(d)
* Items
** NEXT Wake up
SCHEDULED: <2019-06-11 Tues 05:00 +1d>
:PROPERTIES:
:LAST_REPEAT: [2019-06-10 Mon 13:37]
:END:
:LOGBOOK:
- State "DONE" from "NEXT" [2019-06-10 Mon 13:37]
:END:
** DONE One time event
CLOSED: [2019-06-10 Mon 13:46] SCHEDULED: <2019-06-10 Mon 15:00>
** Not going to be finished
SCHEDULED: <2019-06-11 Tue>
:LOGBOOK:
CLOCK: [2019-06-10 Mon 13:54]--[2019-06-10 Mon 13:54] => 0:00
:END:
** Go to bed
SCHEDULED: <2019-06-10 Mon 22:00 +1d>
调用org-agenda
后,我们看不到完成的“唤醒”的时间戳:
允许不活动的时间戳将显示已完成的“唤醒”时间戳,但是该时间戳显示了两次,并且这些议程项目指的是不是很清楚:
调用org-agenda-log-mode
会给出更多相关的议程条目(足以显示一次性任务的结束时间戳记)。但是,默认情况下它不会显示状态更改,这意味着我们的“唤醒”时间戳将不会显示: