emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] Need help understanding how to limit a function to a tree


From: John Kitchin
Subject: Re: [O] Need help understanding how to limit a function to a tree
Date: Wed, 28 Feb 2018 19:35:14 -0800

You probably want this:

#+BEGIN_SRC emacs-lisp
(defun my-redo ()
  (interactive)
  (org-map-entries
   (lambda ()
     (org-todo "TODO"))
   "TODO=\"DONE\""  ;; the match argument
   'tree))  ;; the scope
#+END_SRC

Then call:

M-x my-redo 

in the tree you want to reset.



John

-----------------------------------
Professor John Kitchin 
Doherty Hall A207F
Department of Chemical Engineering
Carnegie Mellon University
Pittsburgh, PA 15213
412-268-7803

On Wed, Feb 28, 2018 at 4:36 PM, mediapathic steen <address@hidden> wrote:
I have a subtree that contains a daily list of things to do (which I keep as TODOs rather than checklist form for more granular time tracking). I want to reset all of the DONE to TODO every day when I start it. Right now I have this piece of code I copypasted from somewhere now lost (possibly this very group):

(org-map-entries (lambda ()
          (when
              (string=
               (nth 2 (org-heading-components)) "DONE")
               (org-todo "TODO"))))

This more or less makes sense to me. I have this code sitting in the subtree, and  in order to do my daily reset, I edit the subtree in an indirect buffer, eval-region the code, then kill the buffer.

What I would like to accomplish:
1) Can you help me understand how to modify this code so that it only applies to the subtree it's run in (parents also would be fine in this case but not necessary and seems more of a challenge)? Doing the indirect buffer thing seems more hassle than is reasonable.

2) I think I understand how to put this in my init in such a way that I can C-x invoke it, rather than having to eval-region it, but I'm not certain. Can you point me toward a reasonable tutorial or hints on how to do that in general?

Thanks in advance,
-- Steen


reply via email to

[Prev in Thread] Current Thread [Next in Thread]