* "clearing" the state of an org-mode subtree
@ 2009-10-09 21:28 Robert Goldman
2009-10-09 23:43 ` Andrew Stribblehill
0 siblings, 1 reply; 12+ messages in thread
From: Robert Goldman @ 2009-10-09 21:28 UTC (permalink / raw)
To: Org Mode
I'm at about my one year anniversary using Org-mode, and I have a bit of
an odd question. Last year, I made a subtree that was a project for
getting ready for winter (I live in Minnesota, which has harsh winters).
I worked my way through that list, and now I'd like to do the whole
thing over again.
So I'd like to copy the subtree (this I believe I can easily do), and
then clear it. That is, I'd like to reset all the TODOs from DONE to
TODO, and clear all the check boxes.
This seems like a really odd thing to do, so there probably isn't
automation for it, but before I go groveling over it by hand, I thought
I'd ask.
thanks!
R
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: "clearing" the state of an org-mode subtree
2009-10-09 21:28 "clearing" the state of an org-mode subtree Robert Goldman
@ 2009-10-09 23:43 ` Andrew Stribblehill
2009-10-10 17:23 ` Darlan Cavalcante Moreira
2009-10-10 17:47 ` Robert Goldman
0 siblings, 2 replies; 12+ messages in thread
From: Andrew Stribblehill @ 2009-10-09 23:43 UTC (permalink / raw)
To: Robert Goldman; +Cc: Org Mode
org-mode files are plain text. M-% to do a replacement: once you've
entered your search term and its replacement, hit ! to replace all
without question.
2009/10/9 Robert Goldman <rpgoldman@sift.info>:
> I'm at about my one year anniversary using Org-mode, and I have a bit of
> an odd question. Last year, I made a subtree that was a project for
> getting ready for winter (I live in Minnesota, which has harsh winters).
>
> I worked my way through that list, and now I'd like to do the whole
> thing over again.
>
> So I'd like to copy the subtree (this I believe I can easily do), and
> then clear it. That is, I'd like to reset all the TODOs from DONE to
> TODO, and clear all the check boxes.
>
> This seems like a really odd thing to do, so there probably isn't
> automation for it, but before I go groveling over it by hand, I thought
> I'd ask.
>
> thanks!
> R
>
>
> _______________________________________________
> Emacs-orgmode mailing list
> Remember: use `Reply All' to send replies to the list.
> Emacs-orgmode@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: "clearing" the state of an org-mode subtree
2009-10-09 23:43 ` Andrew Stribblehill
@ 2009-10-10 17:23 ` Darlan Cavalcante Moreira
2009-10-10 17:47 ` Robert Goldman
1 sibling, 0 replies; 12+ messages in thread
From: Darlan Cavalcante Moreira @ 2009-10-10 17:23 UTC (permalink / raw)
To: Andrew Stribblehill; +Cc: Org Mode, Robert Goldman
It will be even easier if you narrow to the subtree before making the
replacements with org-narrow-to-subtree (C-x n s) so that you don't risk
changing anythong else. After you have done, run the command widen (C-x n w) to
show the whole file again.
Darlan
At Sat, 10 Oct 2009 00:43:12 +0100,
Andrew Stribblehill <ads@wompom.org> wrote:
>
> org-mode files are plain text. M-% to do a replacement: once you've
> entered your search term and its replacement, hit ! to replace all
> without question.
>
> 2009/10/9 Robert Goldman <rpgoldman@sift.info>:
> > I'm at about my one year anniversary using Org-mode, and I have a bit of
> > an odd question. Last year, I made a subtree that was a project for
> > getting ready for winter (I live in Minnesota, which has harsh winters).
> >
> > I worked my way through that list, and now I'd like to do the whole
> > thing over again.
> >
> > So I'd like to copy the subtree (this I believe I can easily do), and
> > then clear it. That is, I'd like to reset all the TODOs from DONE to
> > TODO, and clear all the check boxes.
> >
> > This seems like a really odd thing to do, so there probably isn't
> > automation for it, but before I go groveling over it by hand, I thought
> > I'd ask.
> >
> > thanks!
> > R
> >
> >
> > _______________________________________________
> > Emacs-orgmode mailing list
> > Remember: use `Reply All' to send replies to the list.
> > Emacs-orgmode@gnu.org
> > http://lists.gnu.org/mailman/listinfo/emacs-orgmode
> >
>
>
> _______________________________________________
> Emacs-orgmode mailing list
> Remember: use `Reply All' to send replies to the list.
> Emacs-orgmode@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: "clearing" the state of an org-mode subtree
2009-10-09 23:43 ` Andrew Stribblehill
2009-10-10 17:23 ` Darlan Cavalcante Moreira
@ 2009-10-10 17:47 ` Robert Goldman
2009-10-11 9:47 ` Paul Mead
2009-10-11 15:11 ` Gregory J. Grubbs
1 sibling, 2 replies; 12+ messages in thread
From: Robert Goldman @ 2009-10-10 17:47 UTC (permalink / raw)
To: Andrew Stribblehill; +Cc: Org Mode
Andrew Stribblehill wrote:
> org-mode files are plain text. M-% to do a replacement: once you've
> entered your search term and its replacement, hit ! to replace all
> without question.
Yes, one can do this, but note that it's not entirely a no-brainer. You
need to:
1. clear all the check boxes and then recompute all checkbox counts in
the region. [this isn't a simple tag replacement]
2. replace all non-TODO keywords with TODO. This is a replacement, but
not a simple one to do with M-%
3. Wipe out all of the notes that were added with state changes.
Again, this can be done with a replacement command, but it's not a
trivial one.
This is one of those cases where automating a task will not pay back the
investment (at least not to me, individually), so I think I'd better
just do it by hand.
Thanks, everyone,
r
>
> 2009/10/9 Robert Goldman <rpgoldman@sift.info>:
>> I'm at about my one year anniversary using Org-mode, and I have a bit of
>> an odd question. Last year, I made a subtree that was a project for
>> getting ready for winter (I live in Minnesota, which has harsh winters).
>>
>> I worked my way through that list, and now I'd like to do the whole
>> thing over again.
>>
>> So I'd like to copy the subtree (this I believe I can easily do), and
>> then clear it. That is, I'd like to reset all the TODOs from DONE to
>> TODO, and clear all the check boxes.
>>
>> This seems like a really odd thing to do, so there probably isn't
>> automation for it, but before I go groveling over it by hand, I thought
>> I'd ask.
>>
>> thanks!
>> R
>>
>>
>> _______________________________________________
>> Emacs-orgmode mailing list
>> Remember: use `Reply All' to send replies to the list.
>> Emacs-orgmode@gnu.org
>> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>>
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: "clearing" the state of an org-mode subtree
2009-10-10 17:47 ` Robert Goldman
@ 2009-10-11 9:47 ` Paul Mead
2009-10-11 12:36 ` Bernt Hansen
2009-10-11 15:11 ` Gregory J. Grubbs
1 sibling, 1 reply; 12+ messages in thread
From: Paul Mead @ 2009-10-11 9:47 UTC (permalink / raw)
To: emacs-orgmode
Robert Goldman <rpgoldman@sift.info> writes:
> Andrew Stribblehill wrote:
>> org-mode files are plain text. M-% to do a replacement: once you've
>> entered your search term and its replacement, hit ! to replace all
>> without question.
>
> Yes, one can do this, but note that it's not entirely a no-brainer. You
> need to:
>
> 1. clear all the check boxes and then recompute all checkbox counts in
> the region. [this isn't a simple tag replacement]
>
> 2. replace all non-TODO keywords with TODO. This is a replacement, but
> not a simple one to do with M-%
>
> 3. Wipe out all of the notes that were added with state changes.
> Again, this can be done with a replacement command, but it's not a
> trivial one.
>
> This is one of those cases where automating a task will not pay back the
> investment (at least not to me, individually), so I think I'd better
> just do it by hand.
>
> Thanks, everyone,
Have you thought about using yasnippet? I have a repeating set of TODOs
in a particular order that I have to do every month. Rather than reusing
the old structure, I just insert it again from a snippet. That way I
also have all my notes from last month too.
Paul
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: "clearing" the state of an org-mode subtree
2009-10-11 9:47 ` Paul Mead
@ 2009-10-11 12:36 ` Bernt Hansen
2009-10-11 16:10 ` Robert P. Goldman
0 siblings, 1 reply; 12+ messages in thread
From: Bernt Hansen @ 2009-10-11 12:36 UTC (permalink / raw)
To: Paul Mead; +Cc: emacs-orgmode
Paul Mead <paul.d.mead@gmail.com> writes:
> Robert Goldman <rpgoldman@sift.info> writes:
>
>> Andrew Stribblehill wrote:
>>> org-mode files are plain text. M-% to do a replacement: once you've
>>> entered your search term and its replacement, hit ! to replace all
>>> without question.
>>
>> Yes, one can do this, but note that it's not entirely a no-brainer. You
>> need to:
>>
>> 1. clear all the check boxes and then recompute all checkbox counts in
>> the region. [this isn't a simple tag replacement]
>>
>> 2. replace all non-TODO keywords with TODO. This is a replacement, but
>> not a simple one to do with M-%
>>
>> 3. Wipe out all of the notes that were added with state changes.
>> Again, this can be done with a replacement command, but it's not a
>> trivial one.
>>
>> This is one of those cases where automating a task will not pay back the
>> investment (at least not to me, individually), so I think I'd better
>> just do it by hand.
>>
>> Thanks, everyone,
>
> Have you thought about using yasnippet? I have a repeating set of TODOs
> in a particular order that I have to do every month. Rather than reusing
> the old structure, I just insert it again from a snippet. That way I
> also have all my notes from last month too.
Or copy the subtree _before_ you fill it in with details. Make a
repeating task that is just to copy the subtree at the appropriate time
so the subtree is available for the repeat after this one, and then
proceed to use one of the copies for the current task iteration.
HTH,
Bernt
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: "clearing" the state of an org-mode subtree
2009-10-10 17:47 ` Robert Goldman
2009-10-11 9:47 ` Paul Mead
@ 2009-10-11 15:11 ` Gregory J. Grubbs
1 sibling, 0 replies; 12+ messages in thread
From: Gregory J. Grubbs @ 2009-10-11 15:11 UTC (permalink / raw)
To: emacs-orgmode
Robert Goldman <rpgoldman@sift.info> writes:
> This is one of those cases where automating a task will not pay back the
> investment (at least not to me, individually), so I think I'd better
> just do it by hand.
I think automating a task that annoys you is worth the trouble. You
could at least start with something like the following, and flesh it out
to include drawer notes and check lists.
--8<---------------cut here---------------start------------->8---
(defun gjg/org-reset-todo ()
"reset any task from point onward with a TODO keyword to
initial TODO state. Show all trees you want to reset before
running this command: hidden trees will not be touched"
(interactive)
(save-excursion
(while (not (eobp))
(outline-next-visible-heading 1)
(if (org-get-todo-state)
(org-todo "TODO")))))
--8<---------------cut here---------------end--------------->8---
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: "clearing" the state of an org-mode subtree
2009-10-11 12:36 ` Bernt Hansen
@ 2009-10-11 16:10 ` Robert P. Goldman
2009-10-11 16:46 ` Bernt Hansen
2009-10-11 22:21 ` Nick Dokos
0 siblings, 2 replies; 12+ messages in thread
From: Robert P. Goldman @ 2009-10-11 16:10 UTC (permalink / raw)
To: emacs-orgmode
Bernt Hansen <bernt <at> norang.ca> writes:
>
> Paul Mead <paul.d.mead <at> gmail.com> writes:
>
> > Robert Goldman <rpgoldman <at> sift.info> writes:
> >
> >> Andrew Stribblehill wrote:
> >>> org-mode files are plain text. M-% to do a replacement: once you've
> >>> entered your search term and its replacement, hit ! to replace all
> >>> without question.
> >>
> >> Yes, one can do this, but note that it's not entirely a no-brainer. You
> >> need to:
> >>
> >> 1. clear all the check boxes and then recompute all checkbox counts in
> >> the region. [this isn't a simple tag replacement]
> >>
> >> 2. replace all non-TODO keywords with TODO. This is a replacement, but
> >> not a simple one to do with M-%
> >>
> >> 3. Wipe out all of the notes that were added with state changes.
> >> Again, this can be done with a replacement command, but it's not a
> >> trivial one.
> >>
> >> This is one of those cases where automating a task will not pay back the
> >> investment (at least not to me, individually), so I think I'd better
> >> just do it by hand.
> >>
> >> Thanks, everyone,
> >
> > Have you thought about using yasnippet? I have a repeating set of TODOs
> > in a particular order that I have to do every month. Rather than reusing
> > the old structure, I just insert it again from a snippet. That way I
> > also have all my notes from last month too.
>
> Or copy the subtree _before_ you fill it in with details. Make a
> repeating task that is just to copy the subtree at the appropriate time
> so the subtree is available for the repeat after this one, and then
> proceed to use one of the copies for the current task iteration.
Yes, this would clearly have been The Right Thing had I realized when I built
the subtree that I might want to use it again. But I didn't (this seems like a
specific case of the general "code reuse" problem --- it's nice if you can
foresee that you'd like to reuse something but often that does not happen).
The issue about copying, IIUC, is that the template from which one is to copy
must be kept "out of band" with respect to the agenda. That is, it must be kept
somewhere (perhaps in an "org-templates.org" file) where the agenda will not see
it, and copied from the templates file into a file that is active wrt the
agenda. The yasnippet approach fits this. But again, this is a different use
case --- one in which the user has had the foresight to realize that a task will
be used over and over.
Note that no templating approach (automated by yasnippet or not) supports
learning in the course of this code reuse. E.g., if I think of something this
year when I am winterizing, and add that new TODO into my currently active copy
of the template, then it won't appear next year if I reinvoke the template.
In general, I'm inclined to think that this case is irregular enough that it's
probably best to simply keep my one working copy and manually clear it every
year when I need another. It's probably an AI-complete problem to clear an
arbitrary hunk of org back to a pristine state!
Thanks for the discussion,
best,
r
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: "clearing" the state of an org-mode subtree
2009-10-11 16:10 ` Robert P. Goldman
@ 2009-10-11 16:46 ` Bernt Hansen
2009-10-11 22:21 ` Nick Dokos
1 sibling, 0 replies; 12+ messages in thread
From: Bernt Hansen @ 2009-10-11 16:46 UTC (permalink / raw)
To: Robert P. Goldman; +Cc: emacs-orgmode
Robert P. Goldman <rpgoldman@sift.info> writes:
> Bernt Hansen <bernt <at> norang.ca> writes:
>
>>
>> Paul Mead <paul.d.mead <at> gmail.com> writes:
>>
>> > Robert Goldman <rpgoldman <at> sift.info> writes:
>> >
>> >> Andrew Stribblehill wrote:
>> >>> org-mode files are plain text. M-% to do a replacement: once you've
>> >>> entered your search term and its replacement, hit ! to replace all
>> >>> without question.
>> >>
>> >> Yes, one can do this, but note that it's not entirely a no-brainer. You
>> >> need to:
>> >>
>> >> 1. clear all the check boxes and then recompute all checkbox counts in
>> >> the region. [this isn't a simple tag replacement]
>> >>
>> >> 2. replace all non-TODO keywords with TODO. This is a replacement, but
>> >> not a simple one to do with M-%
>> >>
>> >> 3. Wipe out all of the notes that were added with state changes.
>> >> Again, this can be done with a replacement command, but it's not a
>> >> trivial one.
>> >>
>> >> This is one of those cases where automating a task will not pay back the
>> >> investment (at least not to me, individually), so I think I'd better
>> >> just do it by hand.
>> >>
>> >> Thanks, everyone,
>> >
>> > Have you thought about using yasnippet? I have a repeating set of TODOs
>> > in a particular order that I have to do every month. Rather than reusing
>> > the old structure, I just insert it again from a snippet. That way I
>> > also have all my notes from last month too.
>>
>> Or copy the subtree _before_ you fill it in with details. Make a
>> repeating task that is just to copy the subtree at the appropriate time
>> so the subtree is available for the repeat after this one, and then
>> proceed to use one of the copies for the current task iteration.
>
>
> Yes, this would clearly have been The Right Thing had I realized when I built
> the subtree that I might want to use it again. But I didn't (this seems like a
> specific case of the general "code reuse" problem --- it's nice if you can
> foresee that you'd like to reuse something but often that does not happen).
>
> The issue about copying, IIUC, is that the template from which one is to copy
> must be kept "out of band" with respect to the agenda. That is, it must be kept
> somewhere (perhaps in an "org-templates.org" file) where the agenda will not see
> it, and copied from the templates file into a file that is active wrt the
> agenda. The yasnippet approach fits this. But again, this is a different use
> case --- one in which the user has had the foresight to realize that a task will
> be used over and over.
>
> Note that no templating approach (automated by yasnippet or not) supports
> learning in the course of this code reuse. E.g., if I think of something this
> year when I am winterizing, and add that new TODO into my currently active copy
> of the template, then it won't appear next year if I reinvoke the template.
>
> In general, I'm inclined to think that this case is irregular enough that it's
> probably best to simply keep my one working copy and manually clear it every
> year when I need another. It's probably an AI-complete problem to clear an
> arbitrary hunk of org back to a pristine state!
>
> Thanks for the discussion,
I have a similar setup for my quarterly accounting tasks - I just have
them scheduled a year in advance so they don't bother my agenda views.
I copy that subtree which moves it forward another year. I keep the
data in-band.
On ** TODO Q1 Accounting 2010
I do C-c C-x c, create 1 clone, and move it forward +1y
This makes 2 copies actually - the one for next year _and_ moves the
repeating task forward another year. Then All I do is change the year
on the top-level task and I'm done.
Then I can work on the entry without the +1y repeater.
,----[ test2.org ]
|
| * Accounting
|
| ** TODO Q1 Accounting 2010
| SCHEDULED: <2009-11-15 Sun +1y>
| - Copy subtree
| *** TODO Year End adjustments
| SCHEDULED: <2009-11-15 Sun>
| - [ ] Step 1
| - [ ] Step 2
| - [ ] Step 3
| ...
| - [ ] Step n
|
| *** TODO October Accounting
| SCHEDULED: <2009-11-15 Sun>
| - [ ] Step 1
| - [ ] Step 2
| - [ ] Step 3
| ...
| - [ ] Step n
|
| *** TODO November Accounting
| SCHEDULED: <2009-12-15 Tue>
| - [ ] Step 1
| - [ ] Step 2
| - [ ] Step 3
| ...
| - [ ] Step n
|
| *** TODO December Accounting
| SCHEDULED: <2010-01-15 Fri>
| - [ ] Step 1
| - [ ] Step 2
| - [ ] Step 3
| ...
| - [ ] Step n
|
| *** TODO File Taxes Oct - Dec
| SCHEDULED: <2010-01-15 Fri>
`----
After the copy (and editing the years on the Q1 Accounting YYYY task) my
file looks like this:
,----[ test2.org ]
|
| * Accounting
|
| ** TODO Q1 Accounting 2010
| SCHEDULED: <2009-11-15 Sun>
| - Copy subtree
| *** TODO Year End adjustments
| SCHEDULED: <2009-11-15 Sun>
| - [ ] Step 1
| - [ ] Step 2
| - [ ] Step 3
| ...
| - [ ] Step n
|
| *** TODO October Accounting
| SCHEDULED: <2009-11-15 Sun>
| - [ ] Step 1
| - [ ] Step 2
| - [ ] Step 3
| ...
| - [ ] Step n
|
| *** TODO November Accounting
| SCHEDULED: <2009-12-15 Tue>
| - [ ] Step 1
| - [ ] Step 2
| - [ ] Step 3
| ...
| - [ ] Step n
|
| *** TODO December Accounting
| SCHEDULED: <2010-01-15 Fri>
| - [ ] Step 1
| - [ ] Step 2
| - [ ] Step 3
| ...
| - [ ] Step n
|
| *** TODO File Taxes Oct - Dec
| SCHEDULED: <2010-01-15 Fri>
| ** TODO Q1 Accounting 2011
| SCHEDULED: <2010-11-15 Mon>
| - Copy subtree
| *** TODO Year End adjustments
| SCHEDULED: <2010-11-15 Mon>
| - [ ] Step 1
| - [ ] Step 2
| - [ ] Step 3
| ...
| - [ ] Step n
|
| *** TODO October Accounting
| SCHEDULED: <2010-11-15 Mon>
| - [ ] Step 1
| - [ ] Step 2
| - [ ] Step 3
| ...
| - [ ] Step n
|
| *** TODO November Accounting
| SCHEDULED: <2010-12-15 Wed>
| - [ ] Step 1
| - [ ] Step 2
| - [ ] Step 3
| ...
| - [ ] Step n
|
| *** TODO December Accounting
| SCHEDULED: <2011-01-15 Sat>
| - [ ] Step 1
| - [ ] Step 2
| - [ ] Step 3
| ...
| - [ ] Step n
|
| *** TODO File Taxes Oct - Dec
| SCHEDULED: <2011-01-15 Sat>
| ** TODO Q1 Accounting 2012
| SCHEDULED: <2011-11-15 Tue +1y>
| - Copy subtree
| *** TODO Year End adjustments
| SCHEDULED: <2011-11-15 Tue>
| - [ ] Step 1
| - [ ] Step 2
| - [ ] Step 3
| ...
| - [ ] Step n
|
| *** TODO October Accounting
| SCHEDULED: <2011-11-15 Tue>
| - [ ] Step 1
| - [ ] Step 2
| - [ ] Step 3
| ...
| - [ ] Step n
|
| *** TODO November Accounting
| SCHEDULED: <2011-12-15 Thu>
| - [ ] Step 1
| - [ ] Step 2
| - [ ] Step 3
| ...
| - [ ] Step n
|
| *** TODO December Accounting
| SCHEDULED: <2012-01-15 Sun>
| - [ ] Step 1
| - [ ] Step 2
| - [ ] Step 3
| ...
| - [ ] Step n
|
| *** TODO File Taxes Oct - Dec
| SCHEDULED: <2012-01-15 Sun>
`----
HTH,
Bernt
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: Re: "clearing" the state of an org-mode subtree
2009-10-11 16:10 ` Robert P. Goldman
2009-10-11 16:46 ` Bernt Hansen
@ 2009-10-11 22:21 ` Nick Dokos
2009-10-12 12:39 ` Robert Goldman
1 sibling, 1 reply; 12+ messages in thread
From: Nick Dokos @ 2009-10-11 22:21 UTC (permalink / raw)
To: Robert P. Goldman; +Cc: emacs-orgmode
Robert P. Goldman <rpgoldman@sift.info> wrote:
...
> > > Robert Goldman <rpgoldman <at> sift.info> writes:
> > >
> > >> Andrew Stribblehill wrote:
> > >>> org-mode files are plain text. M-% to do a replacement: once you've
> > >>> entered your search term and its replacement, hit ! to replace all
> > >>> without question.
> > >>
> > >> Yes, one can do this, but note that it's not entirely a no-brainer. You
> > >> need to:
> > >>
> > >> 1. clear all the check boxes and then recompute all checkbox counts in
> > >> the region. [this isn't a simple tag replacement]
> > >>
> > >> 2. replace all non-TODO keywords with TODO. This is a replacement, but
> > >> not a simple one to do with M-%
> > >>
> > >> 3. Wipe out all of the notes that were added with state changes.
> > >> Again, this can be done with a replacement command, but it's not a
> > >> trivial one.
> > >>
> > >> This is one of those cases where automating a task will not pay back the
> > >> investment (at least not to me, individually), so I think I'd better
> > >> just do it by hand.
> > >>
...
Apologies for jumping in without the whole context (I'm buried with work
and I have not been able to even read the whole thread). I'm not sure
how to do #1 and #3 above, but I believe that #2 can be done with the
mapping API (see section A.10 of the org manual) - something like this
(untested and too simple as it stands - probably won't handle headlines
without a todo keyword correctly):
(org-map-entries (lambda () (org-todo "TODO")) t 'tree)
but it may be worth a try. It may even be possible to extend it to do
the other stuff.
HTH,
Nick
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: Re: "clearing" the state of an org-mode subtree
2009-10-11 22:21 ` Nick Dokos
@ 2009-10-12 12:39 ` Robert Goldman
2009-10-12 12:46 ` Carsten Dominik
0 siblings, 1 reply; 12+ messages in thread
From: Robert Goldman @ 2009-10-12 12:39 UTC (permalink / raw)
To: nicholas.dokos; +Cc: emacs-orgmode
Nick Dokos wrote:
> Robert P. Goldman <rpgoldman@sift.info> wrote:
>
> ...
>>>> Robert Goldman <rpgoldman <at> sift.info> writes:
>>>>
>>>>> Andrew Stribblehill wrote:
>>>>>> org-mode files are plain text. M-% to do a replacement: once you've
>>>>>> entered your search term and its replacement, hit ! to replace all
>>>>>> without question.
>>>>> Yes, one can do this, but note that it's not entirely a no-brainer. You
>>>>> need to:
>>>>>
>>>>> 1. clear all the check boxes and then recompute all checkbox counts in
>>>>> the region. [this isn't a simple tag replacement]
>>>>>
>>>>> 2. replace all non-TODO keywords with TODO. This is a replacement, but
>>>>> not a simple one to do with M-%
>>>>>
>>>>> 3. Wipe out all of the notes that were added with state changes.
>>>>> Again, this can be done with a replacement command, but it's not a
>>>>> trivial one.
>>>>>
>>>>> This is one of those cases where automating a task will not pay back the
>>>>> investment (at least not to me, individually), so I think I'd better
>>>>> just do it by hand.
>>>>>
> ...
>
> Apologies for jumping in without the whole context (I'm buried with work
> and I have not been able to even read the whole thread). I'm not sure
> how to do #1 and #3 above, but I believe that #2 can be done with the
> mapping API (see section A.10 of the org manual) - something like this
> (untested and too simple as it stands - probably won't handle headlines
> without a todo keyword correctly):
>
> (org-map-entries (lambda () (org-todo "TODO")) t 'tree)
>
> but it may be worth a try. It may even be possible to extend it to do
> the other stuff.
Thanks, that's very helpful. That is indeed what I'm looking for --- I
had been thinking in terms of string replacement, but this reminds me
that there are functions that address org trees semantically, based on
the meaning of the entries.
In addition to org-todo, there's also org-reset-checkbox-state-subtree.
I haven't yet found anything that will find an org-note (so that it can
be removed), but I will look more carefully.
With all of these, it should be possible to put together what I want.
best,
r
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: Re: "clearing" the state of an org-mode subtree
2009-10-12 12:39 ` Robert Goldman
@ 2009-10-12 12:46 ` Carsten Dominik
0 siblings, 0 replies; 12+ messages in thread
From: Carsten Dominik @ 2009-10-12 12:46 UTC (permalink / raw)
To: Robert Goldman; +Cc: emacs-orgmode
On Oct 12, 2009, at 2:39 PM, Robert Goldman wrote:
> Nick Dokos wrote:
>> Robert P. Goldman <rpgoldman@sift.info> wrote:
>>
>> ...
>>>>> Robert Goldman <rpgoldman <at> sift.info> writes:
>>>>>
>>>>>> Andrew Stribblehill wrote:
>>>>>>> org-mode files are plain text. M-% to do a replacement: once
>>>>>>> you've
>>>>>>> entered your search term and its replacement, hit ! to replace
>>>>>>> all
>>>>>>> without question.
>>>>>> Yes, one can do this, but note that it's not entirely a no-
>>>>>> brainer. You
>>>>>> need to:
>>>>>>
>>>>>> 1. clear all the check boxes and then recompute all checkbox
>>>>>> counts in
>>>>>> the region. [this isn't a simple tag replacement]
>>>>>>
>>>>>> 2. replace all non-TODO keywords with TODO. This is a
>>>>>> replacement, but
>>>>>> not a simple one to do with M-%
>>>>>>
>>>>>> 3. Wipe out all of the notes that were added with state changes.
>>>>>> Again, this can be done with a replacement command, but it's
>>>>>> not a
>>>>>> trivial one.
>>>>>>
>>>>>> This is one of those cases where automating a task will not pay
>>>>>> back the
>>>>>> investment (at least not to me, individually), so I think I'd
>>>>>> better
>>>>>> just do it by hand.
>>>>>>
>> ...
>>
>> Apologies for jumping in without the whole context (I'm buried with
>> work
>> and I have not been able to even read the whole thread). I'm not sure
>> how to do #1 and #3 above, but I believe that #2 can be done with the
>> mapping API (see section A.10 of the org manual) - something like
>> this
>> (untested and too simple as it stands - probably won't handle
>> headlines
>> without a todo keyword correctly):
>>
>> (org-map-entries (lambda () (org-todo "TODO")) t 'tree)
>>
>> but it may be worth a try. It may even be possible to extend it to do
>> the other stuff.
>
> Thanks, that's very helpful. That is indeed what I'm looking for
> --- I
> had been thinking in terms of string replacement, but this reminds me
> that there are functions that address org trees semantically, based on
> the meaning of the entries.
>
> In addition to org-todo, there's also org-reset-checkbox-state-
> subtree.
> I haven't yet found anything that will find an org-note (so that it
> can
> be removed), but I will look more carefully.
You should be logging into a drawer - drawer are much easier
to find than individual notes.
- Carsten
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2009-10-12 12:46 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-10-09 21:28 "clearing" the state of an org-mode subtree Robert Goldman
2009-10-09 23:43 ` Andrew Stribblehill
2009-10-10 17:23 ` Darlan Cavalcante Moreira
2009-10-10 17:47 ` Robert Goldman
2009-10-11 9:47 ` Paul Mead
2009-10-11 12:36 ` Bernt Hansen
2009-10-11 16:10 ` Robert P. Goldman
2009-10-11 16:46 ` Bernt Hansen
2009-10-11 22:21 ` Nick Dokos
2009-10-12 12:39 ` Robert Goldman
2009-10-12 12:46 ` Carsten Dominik
2009-10-11 15:11 ` Gregory J. Grubbs
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).