emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Karl Voit <devnull@Karl-Voit.at>
To: emacs-orgmode@gnu.org
Subject: A short introduction to YASnippet (was: [Bug] Yasnippet/Org: properties messed up when expanding $1)
Date: Mon, 11 Feb 2013 17:31:42 +0100	[thread overview]
Message-ID: <2013-02-11T17-16-57@devnull.Karl-Voit.at> (raw)
In-Reply-To: 87txpig8w7.fsf@bzg.ath.cx

* Bastien <bzg@altern.org> wrote:
> Hi Karl,

Hi!

> I've installed Yasnippet (from GNU ELPA) but I think I need more
> help on how to test it... expanding with TAB in text-mode and in
> yas-minor-mode doesn't produce anything useful.  

Does it produce something at all?

> Can you make a recipe for yas-n00bs?

Sure.

If yasnippet is installed and loaded, you should get an additional
menu entry called «YASnippet». You find out, where your snippet
folder is located. Mine is «~/.emacs.d/snippets». yasnippet is
pretty straight forward: every text file within the snippet folder
is a defined snippet. If not stated otherwise in the header of the
file, the name of the snippet file is the command which is used to
expand.

You can define snippets that are only available in certain modes:
snippets within «$SNIPPETDIR/text-mode/org-mode» are only available
in Org-mode. Following snippet is only available in Org-mode and is
expanded by entering «test» followed by TAB:

,----[ Snippet «~/.emacs.d/snippets/text-mode/org-mode/test» ]
| # name : Testing yasnippet/org issue
| # --
|
| ** Test ${1:test}
| :PROPERTIES:
| :ID: $1
| :END:
`----

AFAIR the header is optional. Within the header, you can define
additional description, alternative name, author, and so forth.

If you add new snippets, you can choose «YASnippet/Reload
everything» from the Emacs menu. I guess this is «yas/reload-all».

Within a snippet, the first «$1» results in putting the cursor at
this point and «asking» the user to enter a string. You can define a
default string with «${1:test}» where «test» is the default string
for «$1».

All other occurrences of «$1» will be replaced by the very same user
string which is quite handy: you have to enter it only once and it
gets replaced multiple times.

The snippet above with «$1» as «foo bar» should result in:

,----[ expanded snippet «test» with «foo bar» ]
| ** Test foo bar
| :PROPERTIES:
| :ID: foo bar
| :END:
`----

For further documentation, please refer to [1].

At my side, any «$x» within the PROPERTIES drawer messes up the
line.


YASnippets are very easy to set up, very handy to use. IMHO,
everybody should use something like yasnippet in his/her daily
workflow.

  1. http://capitaomorte.github.com/yasnippet/#how-to-use-yasnippet
-- 
Karl Voit

  reply	other threads:[~2013-02-11 16:31 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-02-07 11:51 Yasnippet/Org issue: messing up properties Karl Voit
2013-02-10 17:50 ` [Bug] Yasnippet/Org: properties messed up when expanding $1 Karl Voit
2013-02-11 15:36   ` Bastien
2013-02-11 16:31     ` Karl Voit [this message]
2013-02-14 13:11   ` Memnon Anon
2013-02-15 14:44     ` Karl Voit
2013-02-15 15:17       ` Karl Voit
2013-02-15 17:38         ` Karl Voit
2013-02-15 22:40           ` Bastien
2013-02-16 13:43         ` Rafael
2013-02-16 15:36           ` Karl Voit

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=2013-02-11T17-16-57@devnull.Karl-Voit.at \
    --to=devnull@karl-voit.at \
    --cc=emacs-orgmode@gnu.org \
    --cc=news1142@Karl-Voit.at \
    /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).