又到了年底写总结的时候,每次在这个时候总会有这么一个想法。 平时是用org mode来记录工作内容和任务。根据项目记在不同的项目条目下,现在想以时间线的维度来查看这一年来都做了些什么,不知道大家有什么建议。如果可行的话,想在明年进行尝试,我想前提应该是在每个任务或记录的地方加上时间戳,现在还没有,只有一部分有schedule和deadine.
具体怎么查看,现在到真没想好,理想状态中大概是这个样子:
还请各位提出建议,谢谢
又到了年底写总结的时候,每次在这个时候总会有这么一个想法。 平时是用org mode来记录工作内容和任务。根据项目记在不同的项目条目下,现在想以时间线的维度来查看这一年来都做了些什么,不知道大家有什么建议。如果可行的话,想在明年进行尝试,我想前提应该是在每个任务或记录的地方加上时间戳,现在还没有,只有一部分有schedule和deadine.
具体怎么查看,现在到真没想好,理想状态中大概是这个样子:
还请各位提出建议,谢谢
我有类似的需求,不过我是用 org-agenda, 每次写总结的时候,就打开一年的 agenda,然后看哪些值得写进去吹牛逼。
我用 inotifywait 写了一个脚本用 git 来监控所有的 org 文件。每次修改并保存 org 文件后自动创建一个 commit,这样一段时间后可以直接用 git log 来“以时间线的维度”来查看。
这样可以使用 git 的查询机制而不是 org 自己的查询机制(我觉得前者更加完善),并且可以保留几乎所有的修改记录。
我是会用org agenda的daily view或者monthly view中,按"-"(减号,doom emacs好像调用的是org-agenda-manipulate-query-subtract),会将inactive timestamp条目显示出来,基本能实现想了解哪天做了、记了什么。
好思路,不过这样每次保存都有一条commit,每天都有好多个commit吧,一年下来更多,后面看的时候一个个commit看?
可以写段代码,解析出每块org的时间,然后按照需求重新组织一下文档。
这是个好方法。虽然离我想要的还有一段距离,的确是一种变通的候选
org-journal 是按时间记录的
我实现的是,如果要创建的 commit 距离上一个 commit 的时间在 5 分钟之内,就 amend 成一个 commit;这样即使不停地编辑很久也只会有一个 commit。现在我用了 6 个月的 org 一共有大概 1500 个提交。
查看历史用 git log --patch --since '2021-11-03 00:00' --until '2021-11-04 00:00'
一次看完一天的。
这个方法的话,就只有时间线这一个维度。平时大部分时间其实还是希望在项目的这个维度的,也就是我1楼图中左边那样。时间的维度只是在需要时查看一下。
(defun insert-link-to-journal ()
(interactive)
(let ((link (org-store-link nil)))
(org-journal-new-entry nil)
(insert link)))
利用org的archive功能也许可以?
(setq org-archive-location "%s_archive::datetree/* Archived Tasks")
这样archive的时候就会把headline导出为以日期编号的headline的subtree,和你的要求比较像。
org-archive-location
也支持别的格式,建议看下内置的帮助。
另外如果你想在capture的时候就附加一个日期的heading,改一下org-capture-templates
就行,例如
(setq org-capture-templates
'(("t" "Todo" entry (file+datetree "/path/to/todo.org")
"* TODO %?\n%U\n")))
目前个人认为最佳方案。 因为我没有使用org-joural这个插件。我有一个capture template有类似的功能,而且可以计时,似乎也能完成,准备实践下。
但有一个缺点,拿1楼的例子,假设我11月15日在joural或时间线的org(图中的右侧)里记录了开会这个事情,并与我任务org(左侧)关联,链接的应该是会议记录这条,这样“会议纪录”这个条目与任务一的层次关系就没有了。似乎只有点击链接跳转看了。
我相信这个能实现,就是感觉有点重。实现的效果和11楼似乎差不多。
archive的功能对我来讲有一点不适合。
capture是一个好办法,然后再用链接和原来的任务连起来。