写月报,发现过去一个月的事情几乎记不起来
手工查吧,也实在乱,一般只能翻照片,知道过去一个月都干了点啥
要是能用org-mode直接带出来就善莫大焉
找到这篇帖子,试了下没解决,可以改成R,最后一句没看懂
Org-mode agenda: Show list of tasks done in the past, and not those clocked - Emacs Stack Exchange
(with-eval-after-load 'org-agenda
(add-to-list 'org-agenda-custom-commands
'("R" "Month Report"
agenda ""
((org-agenda-start-day "-40d")
(org-agenda-span 40)
(org-agenda-start-on-weekday 1)
(org-agenda-start-with-log-mode '(closed))
(org-agenda-skip-function
'(org-agenda-skip-entry-if 'notregexp "^\\*\\* DONE "))))))
安装 org-ql
然后执行查询命令:
(org-ql-search (org-agenda-files) "todo:DONE ts:from=2024-07-01,to=2024-07-31" :narrow nil :super-groups '((:auto-tags)) :sort nil)
查不到呢
我希望查询这种,比如状态变成了todo:Done CLOSED的时间在7月
** Done 冷藏柜验收货物并报销
CLOSED: [2024-07-15 Mon 11:17]
- State “Done” from “TODO” [2024-07-15 Mon 11:17]
你的这个文件应该不在 org-agenda-files
列表里面。
可以试试手动执行 M-x org-ql-search
,搜索条件就是 todo:DONE ts:from=2024-07-01,to=2024-07-31
,其它排序分组什么的随意。
大概率你是查不到了, 因为你之前没有保存下来 , 如果后续想要保存下来可以这样设置:
(setq org-log-state-notes-into-drawer t) ;; 记录任务状态变化,可能会记录对任务状态的更改,尤其是对于重复例程。如果是这样,请将它们记录在抽屉中,而不是笔记的内容。
我之前是这么用的(doom emacs的快捷键):
检查某天、某周完成的工作,可以用org-agenda的daily/weekly view mode (SPC n a a), 然后用"-“包含inactive-time-stamp,用”[“和”]"切换前/后一天/周。
核心是这里:用"-"包含inactive-time-stamp
douo
7
有习惯 clock-in、 clock-out 的,可用 org-analyzer
用 org-archive 呀。
(with-eval-after-load 'org-archive
;; use `org-archive-subtree' to archive done todos.
(setq org-archive-location
(concat
(expand-file-name
(format-time-string "gtd_archive_%Y") org-gtd-directory) ;;自己修改这个org-gtd-directory
"::datetree/")))
对于标记为 DONE 的任务可以手动或者自动 archive,用上面的配置,archive 后的项目会根据标记为 DONE 的时间保存。看下面的图,这样查最近一个月完成或者关闭了哪些项目就很容易查看,也不需要装其他啥包。
另外提一嘴,我使用 org-gtd 进行任务管理,它有一个org-gtd-archive-completed-items
命令,可以很方便的archive所有标记为完成的项目,不过我一般都还是使用 org-archive-subtree
手动archive项目。
在任意org文件里加入:
#+BEGIN: clocktable :maxlevel 2 :emphasize nil :scope (lambda () (get-archive-files-by-year 2024)) :block 2024-6
#+END: clocktable
然后光标放在 begin 和 end 之间执行 org-dblock-update
:scope 里的函数 get-archive-files-by-year 是自己定义的,也可以用其他参数,具体见:
1 个赞
以前有几个文件还family,后来改成了只有gtd.org这一个文件了;
用 c-h v检查了这个变量,就这个文件,没问题
感觉这是一条正确的道路,我用org-ql-find可以过滤看到todo的项目,但是没尝试出来上面的这个条件
是不是用了 Done
来表示完成而不是 DONE
? 可以先试试只用时间过滤 ts:from=2024-07-01,to=2024-07-31
,确定显示内容之后再加上 todo:Done
看看