Basic steps to setup:
(add-to-list 'load-path
"~/path-to-yasnippet")
(require 'yasnippet)
(yas-global-mode 1)
Interesting variables are:
`yas-snippet-dirs'
The directory where user-created snippets are to be
stored. Can also be a list of directories. In that case,
when used for bulk (re)loading of snippets (at startup or
via `yas-reload-all'), directories appearing earlier in
the list override other dir's snippets. Also, the first
directory is taken as the default for storing the user's
new snippets.
The deprecated `yas/root-directory' aliases this variable
for backward-compatibility.
Major commands are:
M-x yas-expand
Try to expand snippets before point. In `yas-minor-mode',
this is normally bound to TAB, but you can customize it in
`yas-minor-mode-map'.
M-x yas-load-directory
Prompts you for a directory hierarchy of snippets to load.
M-x yas-activate-extra-mode
Prompts you for an extra mode to add snippets for in the
current buffer.
M-x yas-insert-snippet
Prompts you for possible snippet expansion if that is
possible according to buffer-local and snippet-local
expansion conditions. With prefix argument, ignore these
conditions.
M-x yas-visit-snippet-file
Prompts you for possible snippet expansions like
`yas-insert-snippet', but instead of expanding it, takes
you directly to the snippet definition's file, if it
exists.
M-x yas-new-snippet
Lets you create a new snippet file in the correct
subdirectory of `yas-snippet-dirs', according to the
active major mode.
M-x yas-load-snippet-buffer
When editing a snippet, this loads the snippet. This is
bound to "C-c C-c" while in the `snippet-mode' editing
mode.
M-x yas-tryout-snippet
When editing a snippet, this opens a new empty buffer,
sets it to the appropriate major mode and inserts the
snippet there, so you can see what it looks like. This is
bound to "C-c C-t" while in `snippet-mode'.
M-x yas-describe-tables
Lists known snippets in a separate buffer. User is
prompted as to whether only the currently active tables
are to be displayed, or all the tables for all major
modes.
If you have `dropdown-list' installed, you can optionally use it
as the preferred "prompting method", putting in your .emacs file,
for example:
(require 'dropdown-list)
(setq yas-prompt-functions '(yas-dropdown-prompt
yas-ido-prompt
yas-completing-prompt))
Also check out the customization group
M-x customize-group RET yasnippet RET
If you use the customization group to set variables
`yas-snippet-dirs' or `yas-global-mode', make sure the path to
"yasnippet.el" is present in the `load-path' *before* the
`custom-set-variables' is executed in your .emacs file.
For more information and detailed usage, refer to the project page:
http://github.com/joaotavora/yasnippet