Hi Everyone,
Partly because I think it's neat and partly to ask for ways that I could improve it I figured I'd share my latest little snippet of org elisp with the list.
I maintain my primary TODO list as an org file with top-level headings like * This Week
, * Delegated
, * Scheduled
, * Deferred
, etc. These all contain TODOs or potential TODOs.
Anything I intend to work on near term I refile into * This Week
and that's then the primary heading that I'm burning down throughout my day.
I do weekly reflection/projections and 6 week reflection/projections. When I do a weekly reflection I go through another heading * Done
to remind myself what I accomplished in the past week. When I do a 6 week reflection/projection I review the Done heading one more time and then I refile all the entries currently there into an * Archive
heading. Then every now and then I actually archive entries in Archive
into an *.org_archive
file. * Done
and * Archive
are both tagged with ARCHIVE
.
In an effort to start automating some of this effort I wrote the following elisp to refile all the Level 2 entries to the Done heading:
(defun timvisher-org-refile-done-entry-position () (save-excursion (goto-char (point-min)) (re-search-forward "^\\* Done"))) (defun timvisher-org-refile-done-entry () (org-refile nil (current-buffer) (list "* Done" (buffer-file-name) nil (timvisher-org-refile-done-entry-position)))) (defun timvisher-org-refile-done-entries () (interactive) (length (org-map-entries #'timvisher-org-refile-done-entry "LEVEL=2/+DONE|+CANCELLED" nil 'archive)))
I'm doing Level 2 only because for long running projects I tend to have a single Level 2 heading with many subheadings representing the project's breakdown and I don't want them to be refiled out of the project.
Opportunities for improvement would be:
* Done
entry than searching for it every time?org-refile
correctly there? It's functional but it also seems needlessly complicated.Hope this finds you all well. :)
--
In Christ,
Timmy V.
https://blog.twonegatives.com
http://five.sentenc.es