我的recur.org文件中有一些TODO,如下所示:
** TODO Do this thing every day.
SCHEDULED: <2016-09-19 Mon .+1d>
Run Code Online (Sandbox Code Playgroud)
对我来说,那.在+ 1d之前意味着"如果你碰巧在这个工作上做得很晚,那么当你把它标记为已完成时,它将重新安排到标记完成后的第二天." 这是正确的,因为这个工作确实有这样的属性,如果我不做4天,那么我不需要做4次赶上,我只需要做一次.另一方面,如果我不做4天,那么我真的需要完成这项工作,我希望当我C-c a a在emacs org-mode中查看我的每周议程视图时,它会被标记为红色.
不幸的是,这不会发生.标准议程视图将此任务列为
[stuff in red here with Sched. 4x etc etc]
recur: Scheduled: TODO [#A] Do this thing every day
Run Code Online (Sandbox Code Playgroud)
这个条目是绿色的,没有迹象表明我迟到了.这可能是因为它每天安排的事实特别意味着它今天安排,所以挂起它仍然在4天前安排的事实.
这不是我想要的行为.我希望能够制作一个重复的TODO,当完成后,将预定时间重置为今天+ [间隔],但是如果我在超过间隔的时间段内未能完成任务,我仍然会收到警告.
实验表明,有类似事情的工作.+1w行为方式相同 - 他们已经过了6天,然后突然间他们不再过期了.
我能否以某种方式编写自定义议程命令,以确保这些作业在迟到时被标记?
10月3日补充:一些进一步的实验表明,点不是问题 - 这也是重复TODO的默认行为,只是因为在比我不做的时间更短的时间延迟后重新安排他们.
但是我现在稍微乐观一点,这可以通过自定义议程视图以某种方式解决.为了C-c a L给我一个视图,其中定期任务在计划和未完成的第一天出现,而不是最近一天计划和未完成.然而,C-c a L由于三个原因没有好处:(1)它显示了DONE(2)任务,它显示了延迟的优先级C任务(我对这些任务不太感兴趣)和(3)它只作用于当前缓冲区.因此,如果我对议程观点有足够的了解,我觉得我可以回答自己的问题.
10月9日补充:现在已经阅读了组织手册的相关页面,我意识到我仍然不知道如何做到这一点.我很惊讶.我要求的是议程视图,其中包含我的所有组织文件,给我一个每周议程C-c a a,并标记每个重复TODO任务的第一个尚未完成的事件,它具有优先级A.从纯逻辑/编程点我没有看到任何障碍,如果在org-mode中无法做到这一点我会感到非常惊讶,但我当然找不到它.救命!