emacs-orgmode
[Top][All Lists]
Advanced

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

Re: [O] How to use org-capture with "dynamic ID" targets?


From: Eric Abrahamsen
Subject: Re: [O] How to use org-capture with "dynamic ID" targets?
Date: Tue, 29 Jan 2013 13:26:05 +0800
User-agent: Gnus/5.130006 (Ma Gnus v0.6) Emacs/24.2 (gnu/linux)

Darlan Cavalcante Moreira <address@hidden> writes:

> At Thu, 24 Jan 2013 20:01:47 +0100,
> Bastien wrote:
>> Did you tried this?
>> 
>> (setq org-capture-templates
>>  `(("f" "The template description" table-line
>>         (id ,some_variable)
>>         "this is the template content"
>>         :table-line-pos "II-1"
>>         :immediate-finish t)))
 
> This is something I'll have to keep in mind. However, I don't expect this
> to be a problem since I start Emacs everyday. It is enough for me if I can
> set the ID to a variable (before setting org-capture-templates) and it uses
> the variable value as the ID, instead of trying to interpret the variable
> name as the ID. In fact, even if I ever need to change the variable value
> after org-capture-templates was set I'm fine by just reevaluating (setq
> org-capture-templates ...) again so that it sees the new value.


> Exactly. Simple using the value of whatever list object I put there. Be it
> a variable value or a function that provides the. I'm fine if the value
> provided by a variable or a function is only read when
> org-capture-templates is set.

> My lisp knowledge is very limited to what I have seen in my Emacs
> initialization (and a lot of trying and error). But I have never seen "@"
> used in lisp nor I know what terms to search for it..

All this above is pretty much exactly what you're looking for. Check out
the "Backquote" section of the elisp manual for a pretty good
introduction. If you quote using a backtick (`) rather than an
apostrophe ('), you can use the comma (,) later on to evaluate variable
values, see the example at top. I don't believe you need the @ here, but
the manual section I mentioned explains it.

I used to do this in my agenda commands, but it wasn't really practical
because of the "only evaluate once" problem. If you restart emacs every
day, that won't really be an issue for you.

E




reply via email to

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