* Capture templates with "function" type
@ 2013-10-26 21:18 Brett Viren
2013-10-30 22:10 ` Alexander Baier
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Brett Viren @ 2013-10-26 21:18 UTC (permalink / raw)
To: emacs-orgmode
[-- Attachment #1: Type: text/plain, Size: 949 bytes --]
Hi,
I'm trying to set up a capture template of type "function" in order to
produce a daily log file named after today's date.
It mostly works. However, after doing the C-cC-c to close the capture
buffer the window is left holding the daily log file which the capture
just updated instead of going back to whatever buffer I was in when I
initiated the capture. This returning-to-previous-buffer behavior is
what I see when I use the file+headline capture type.
Can someone say how I might get this behavior for the "function" capture
type as well? Here is my setup:
(defun bv-daily-log-file ()
(find-file (concat "~/org/web/notes/"
(format-time-string "%Y-%m-%d") ".org"))
(goto-char (point-max))
(newline 2)
)
(setq org-capture-templates
(quote
(
("n" "Note" entry
(function bv-daily-log-file)
"\* %U %^{title}\n %a\n\n%?"
:empty-lines 1)
)))
Thanks,
-Brett.
[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Capture templates with "function" type
2013-10-26 21:18 Capture templates with "function" type Brett Viren
@ 2013-10-30 22:10 ` Alexander Baier
2013-11-05 17:25 ` Bastien
2013-11-06 14:24 ` Bastien
2 siblings, 0 replies; 7+ messages in thread
From: Alexander Baier @ 2013-10-30 22:10 UTC (permalink / raw)
To: emacs-orgmode
Brett Viren <bv@bnl.gov> writes:
> Hi,
>
> I'm trying to set up a capture template of type "function" in order to
> produce a daily log file named after today's date.
>
> It mostly works. However, after doing the C-cC-c to close the capture
> buffer the window is left holding the daily log file which the capture
> just updated instead of going back to whatever buffer I was in when I
> initiated the capture. This returning-to-previous-buffer behavior is
> what I see when I use the file+headline capture type.
>
> Can someone say how I might get this behavior for the "function" capture
> type as well? Here is my setup:
>
> (defun bv-daily-log-file ()
> (find-file (concat "~/org/web/notes/"
> (format-time-string "%Y-%m-%d") ".org"))
> (goto-char (point-max))
> (newline 2)
> )
> (setq org-capture-templates
> (quote
> (
> ("n" "Note" entry
> (function bv-daily-log-file)
> "\* %U %^{title}\n %a\n\n%?"
> :empty-lines 1)
> )))
>
>
> Thanks,
> -Brett.
Hello Bret,
I do not know, how the capture process works internally, but if I had to
guess I would say, that it stores the current window configuration, when
a capture template is invoked that is not of type funcion. This
configuration is restored after finishing or canceling the capture
process. I would say, when using the function template type, you might
have to roll your own window-configuration management, if that is the
behaviour you want.
Regards,
Alex
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Capture templates with "function" type
2013-10-26 21:18 Capture templates with "function" type Brett Viren
2013-10-30 22:10 ` Alexander Baier
@ 2013-11-05 17:25 ` Bastien
2013-11-05 18:00 ` Brett Viren
2013-11-06 14:24 ` Bastien
2 siblings, 1 reply; 7+ messages in thread
From: Bastien @ 2013-11-05 17:25 UTC (permalink / raw)
To: Brett Viren; +Cc: emacs-orgmode
Hi Brett,
Brett Viren <bv@bnl.gov> writes:
> (defun bv-daily-log-file ()
> (find-file (concat "~/org/web/notes/"
> (format-time-string "%Y-%m-%d") ".org"))
> (goto-char (point-max))
> (newline 2)
> )
You may try this (not tested myself):
(defun bv-daily-log-file ()
(save-window-excursion
(find-file (concat "~/org/web/notes/"
(format-time-string "%Y-%m-%d") ".org"))
(goto-char (point-max))
(newline 2)))
The trick is to use `save-window-excursion'.
--
Bastien
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Capture templates with "function" type
2013-11-05 17:25 ` Bastien
@ 2013-11-05 18:00 ` Brett Viren
0 siblings, 0 replies; 7+ messages in thread
From: Brett Viren @ 2013-11-05 18:00 UTC (permalink / raw)
To: Bastien; +Cc: emacs-orgmode
[-- Attachment #1: Type: text/plain, Size: 1080 bytes --]
Hi Bastien,
Bastien <bzg@gnu.org> writes:
> You may try this (not tested myself):
>
> (defun bv-daily-log-file ()
> (save-window-excursion
> (find-file (concat "~/org/web/notes/"
> (format-time-string "%Y-%m-%d") ".org"))
> (goto-char (point-max))
> (newline 2)))
>
> The trick is to use `save-window-excursion'.
Thanks for the pointer but it looks like this macro runs afoul of the
capture process somehow. I redefined my function as you have above and
did C-xC-e to reload it and then initiated a capture from a window
showing my GNUS summary. It fails with:
byte-code: Capture abort: (buffer-read-only #<killed buffer>)
I then tried another capture staring from a read-write buffer. The
capture succeeds but the captured text is inserted into this starting
buffer instead of the one found by the bv-daily-log-file function.
The Elisp manual mentions that save-selected-window is sometimes a
better alternative but that gives the same behavior.
Do you maybe have further ideas I could try?
Thanks,
-Brett.
[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Capture templates with "function" type
2013-10-26 21:18 Capture templates with "function" type Brett Viren
2013-10-30 22:10 ` Alexander Baier
2013-11-05 17:25 ` Bastien
@ 2013-11-06 14:24 ` Bastien
2013-11-06 14:53 ` Bastien
2 siblings, 1 reply; 7+ messages in thread
From: Bastien @ 2013-11-06 14:24 UTC (permalink / raw)
To: Brett Viren; +Cc: emacs-orgmode
Hi Brett,
Brett Viren <bv@bnl.gov> writes:
> Can someone say how I might get this behavior for the "function" capture
> type as well?
I'm still investigating this bug, but in the meantime you may want to
try using file+function, which does not have the bug.
--
Bastien
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2013-11-06 16:14 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-10-26 21:18 Capture templates with "function" type Brett Viren
2013-10-30 22:10 ` Alexander Baier
2013-11-05 17:25 ` Bastien
2013-11-05 18:00 ` Brett Viren
2013-11-06 14:24 ` Bastien
2013-11-06 14:53 ` Bastien
2013-11-06 16:13 ` Brett Viren
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).