I use a capture template like this: ("t" "Todo" entry (file+headline "todo.org" "Tasks") "* TODO %?\n :HIDDEN:\n %U\n :END:\n%!" :prepend t) to create todo items. I want the cursor to be at the end of the headline so I can type that in, but then I want to be able to quickly jump to the end so I can type any details that I want. I use "the mark" for that purpose, so I can type "C-x C-x" to jump right where I want. So I modified the function org-capture-place-entry to add the following lines: (goto-char beg) (if (re-search-forward "%!" end t) (progn (push-mark nil t nil) (replace-match ""))) just before the final (goto-char beg) that will put the cursor position at "%?". (I guess I could have put that following ``(goto-char beg)'' inside that ``(progn ...)''.) Would anyone else find this a useful addition to the capture template mechanism?
Colin Fraizer <orgmode@cfraizer.com> wrote:
> I use a capture template like this:
>
> ("t" "Todo" entry (file+headline "todo.org" "Tasks")
> "* TODO %?\n :HIDDEN:\n %U\n :END:\n%!" :prepend t)
>
> to create todo items. I want the cursor to be at the end of the
> headline so I can type that in, but then I want to be able to quickly
> jump to the end so I can type any details that I want.
>
> I use "the mark" for that purpose, so I can type "C-x C-x" to jump
> right where I want. So I modified the function
> org-capture-place-entry to add the following lines:
>
> (goto-char beg)
> (if (re-search-forward "%!" end t)
> (progn
> (push-mark nil t nil)
> (replace-match "")))
>
> just before the final (goto-char beg) that will put the cursor
> position at "%?".
>
> (I guess I could have put that following ``(goto-char beg)'' inside
> that ``(progn ...)''.)
>
> Would anyone else find this a useful addition to the capture template
> mechanism?
>
Maybe - but in this particular case, you could just go to the end of the
buffer with M-> (end-of-buffer), right?
And there might be a problem with your proposal: if I push a bunch of
marks during the capture, what happens after the capture is done? Are
they still on the stack? If so, should they be?
Nick
On Apr 24, 2012, at 12:46 PM, Colin Fraizer wrote: > I use a capture template like this: > > ("t" "Todo" entry (file+headline "todo.org" "Tasks") > "* TODO %?\n :HIDDEN:\n %U\n :END:\n%!" :prepend t) > > to create todo items. I want the cursor to be at the end of the > headline so I can type that in, but then I want to be able to quickly > jump to the end so I can type any details that I want. > > I use "the mark" for that purpose, so I can type "C-x C-x" to jump > right where I want. So I modified the function > org-capture-place-entry to add the following lines: > > (goto-char beg) > (if (re-search-forward "%!" end t) > (progn > (push-mark nil t nil) > (replace-match ""))) > > just before the final (goto-char beg) that will put the cursor > position at "%?". > > (I guess I could have put that following ``(goto-char beg)'' inside > that ``(progn ...)''.) > > Would anyone else find this a useful addition to the capture template > mechanism? You could also use a prompt for the headline. Or we could allow several %? in the buffer, with a simple key to jump to the next one and delete it..... - Carsten > > > - Carsten
Nick Dokos wrote: >Maybe - but in this particular case, you could just go to the end of the >buffer with M-> (end-of-buffer), right? Yeah. I could just do that. (Blushing with embarrassment. :-) >And there might be a problem with your proposal: if I push a bunch of >marks during the capture, what happens after the capture is done? Are >they still on the stack? If so, should they be? I guess I was mostly thinking of capture using indirect buffers, which have their own marks and mark rings, right? Does ":unnarrowed" use the actual buffer instead of an indirect one? If so, I can see a couple options (and we've already established that there are lots of options I don't see): - If you don't like capture to set the mark, don't set it. :-) - Arrange for clean-up in the case of org-capture-kill and (maybe?) org-capture-finalize. Carsten Dominik wrote: >You could also use a prompt for the headline. Or we could allow several %? >in the buffer, with a simple key to jump to the next one and delete it..... Yeah, I could do that too. I don't know why I didn't consider that. I guess because I'm so used to the "pop-up" nature of the capture window. I'm not sure I would like/use the "multiple %?" approach. Another reason I can imagine for wanting to place the mark with capture is to define the region. (Being old, I'm somewhat ambivalent about this new-fangled "light-up" "active" region. :-) I can imagine wanting to place the mark and point (with %?), typing some stuff, and then wanting to M-w (kill-ring-save) that text. --Colin