From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Abrahamsen Subject: Re: How to use org-capture with "dynamic ID" targets? Date: Tue, 29 Jan 2013 13:26:05 +0800 Message-ID: <871ud4imqa.fsf@ericabrahamsen.net> References: <50f72bf5.669dec0a.7b79.ffffdcb0@mx.google.com> <87pq0u1k2s.fsf@bzg.ath.cx> <5106be00.0c5e650a.1535.fffff1fa@mx.google.com> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([208.118.235.92]:53046) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1U03dD-0001vS-Bd for emacs-orgmode@gnu.org; Tue, 29 Jan 2013 00:21:16 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1U03dA-0001Sp-O4 for emacs-orgmode@gnu.org; Tue, 29 Jan 2013 00:21:13 -0500 Received: from plane.gmane.org ([80.91.229.3]:39436) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1U03dA-0001Sl-Hj for emacs-orgmode@gnu.org; Tue, 29 Jan 2013 00:21:12 -0500 Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1U03dQ-00084D-Hi for emacs-orgmode@gnu.org; Tue, 29 Jan 2013 06:21:28 +0100 Received: from 114.250.134.211 ([114.250.134.211]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 29 Jan 2013 06:21:28 +0100 Received: from eric by 114.250.134.211 with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 29 Jan 2013 06:21:28 +0100 List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode@gnu.org Darlan Cavalcante Moreira 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