emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Sebastian Fischmeister <sfischme@uwaterloo.ca>
To: Nathan Neff <nathan.neff@gmail.com>
Cc: Bastien <bzg@gnu.org>, emacs-orgmode <emacs-orgmode@gnu.org>
Subject: Re: Templates for cloning
Date: Wed, 8 Aug 2012 20:42:30 -0400	[thread overview]
Message-ID: <20120809004230.GA11227@muh> (raw)
In-Reply-To: <CAC=HedApKw+26LJXq3bPn4ASM0=81xj-sZd1VpCLDGw9jcpOSQ@mail.gmail.com>

The comment about swapping lines and getting a nicer version was
intended for the orgmode devs, just in case they want an easy way to
support templates with minimal changes to the source code.

My solution also works. Just copy the elisp definitions for org-p and
org-g into your .emacs file. Then define a new template and you're
set.

In the template:

- %(org-p "varname") will prompt you for a value that is then stored as
 'varname'.

- %(org-g "varname") will then insert the text you entered at the
 prompt.


  Sebastian


On 08/05/12 08:35pm, Nathan Neff wrote:
> On Fri, Aug 3, 2012 at 9:40 PM, Sebastian Fischmeister
> <sfischme@uwaterloo.ca> wrote:
> > As an idea, this is how I use templates:
> >
> > %+begin_src
> > (defun org-p (key)
> >   (let ((val (read-from-minibuffer (concat "Define " key ": "))))
> >     (plist-put org-store-link-plist
> >                (intern (concat ":" key)) val))
> >   ""
> >   )
> >
> > (defmacro org-g (key)
> >   (or (plist-get org-store-link-plist (intern (concat ":" key)))
> >   (concat "MISSING-KEY-" key)))
> >
> > (setq org-capture-templates
> >        (quote (("p4" "Template: Bla" plain (file+headline
> >        "~/.org/todo.org" "Projects") (file "~/.org/templates/bla.tmpl")))))
> > %+end_src
> >
> > %+begin_src yasnippet
> > %(org-p "var1")
> > %(org-p "var2")
> > ** Now copy here %(org-g "var1")
> > ** And here %(org-g "var1")
> >    SCHEDULED: %^t
> > %+end_src
> >
> > If you just swap the sequence of the buffer evaluation in
> > org-capture-fill-template, then you would even have a nicer version of
> > this. See this previous post for details:
> >
> > http://comments.gmane.org/gmane.emacs.orgmode/57248
> >
> >   Sebastian
> >
> 
> Sebastian, thanks for your suggestion, but I'm having trouble understanding
> how your solution works, and I don't know what you mean by "If you just swap
> the sequence of the buffer evaluation".  I only glanced at your suggestion and
> will review it later (hopefully).
> 
> If you can point me to more documentation about what's going on in
> your solution,
> or perhaps enlighten me a bit more, I would appreciate it!
> 
> Thanks,
> --Nate

      reply	other threads:[~2012-08-09  0:42 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-02 17:12 Templates for cloning Nathan Neff
2012-08-03  7:25 ` Bastien
2012-08-04  2:40   ` Sebastian Fischmeister
2012-08-06  1:35     ` Nathan Neff
2012-08-09  0:42       ` Sebastian Fischmeister [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20120809004230.GA11227@muh \
    --to=sfischme@uwaterloo.ca \
    --cc=bzg@gnu.org \
    --cc=emacs-orgmode@gnu.org \
    --cc=nathan.neff@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).