在组织模式下使用日志中的时间戳进行自定义搜索
我想创建一个自定义议程搜索,它将根据日志中的时间条目查找待办事项项目。具体来说,我想根据标记等待状态条目的时间戳找到标记为 WAITING 的项目。这些条目如下所示:
:LOGBOOK:
- State "WAITING" from "TODO" [2011-11-02 Wed 15:10] \\
Emailed so-and-so about such-and-such.
:END:
我可以使用日志中的信息执行此操作吗?我使用的是 7.5 版本,但如果需要可以升级。
谢谢!
编辑:一个用例可能是查找等待状态已超过一周的待办事项。 (这通常意味着我需要再次打扰某人。)
I'd like to create a custom agenda search which will find TODO items based on time entries in the LOGBOOK. Specifically, I'd like to find items tagged WAITING based on the timestamp which marked the entry to the waiting state. These entries look like this:
:LOGBOOK:
- State "WAITING" from "TODO" [2011-11-02 Wed 15:10] \\
Emailed so-and-so about such-and-such.
:END:
Can I do this with the information in the logbook? I'm using version 7.5 but can upgrade if necessary.
Thanks!
Edit: One use case might be to find WAITING todo's which have been the waiting state for more than a week. (Which usually means I need to bug somebody again.)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
以下应该可以满足您的需要。您只需调整自定义议程命令即可适合您的用例。 (在测试和配置它时,我使用了 TODO 关键字)。此代码的一部分可能会重复内置组织功能的工作,特别是因为它类似于计划和截止日期方法/逾期行为,但我看不到任何可重用的特定功能。
自定义命令中使用的实际函数如下。
以下函数通过重新搜索向前查找日志条目。
最后一个函数确定今天与上述函数找到的时间戳之间的天数差异。
使用上述函数的两个示例自定义议程命令。第一个与您的用例匹配,您只需将“PEND”更改为“WAITING”即可使其匹配正确的关键字。第二个查找 30 天前完成的 DONE 关键字(而不是查找具有与本月/上个月匹配的月份的时间戳,如我在第一条评论中链接的示例中所做的那样)。
The following should do what you need. You'll simply have to adjust the Custom Agenda commands to fit your use-case. (When testing and configuring it I used my TODO keywords). It is possible that one portion of this code duplicates the work of a built-in org function, particularly since it resembles the Scheduled and Deadline approach/overdue behaviour, yet I could not see any specific function that would be reusable.
The actual function to use in the custom command follows.
The following function finds logbook entries through re-search-forward.
The last function determines the number of days difference between today and the timestamp found by the above function.
Two sample custom agenda commands using the above functions. The first matches up to your use-case, you'll simply have to change "PEND" to "WAITING" for it to match the right keyword. The second looks for DONE keywords that were completed more than 30 days ago (As opposed to looking for timestamps that have a month matching this/last month as done in the example I'd linked in my first comment).
除了 Jonathan Leech-Pepin 的回答之外,如果您想查看由
(setq org-log-done 'time)
配置添加的CLOSED:
抽屉,您可以改进zin/find-state
函数如下:PS:这只是答案的改进,正确答案是 Jonathan 的答案。
In addition to Jonathan Leech-Pepin answer, if you want to look at
CLOSED:
drawer added by(setq org-log-done 'time)
configuration, you can improve thezin/find-state
function like this:PS: This is just a improvement for the answer, the correct answer is the Jonathan's answer.