Skip to content


Subversion checkout URL

You can clone with
Download ZIP
A template system for Emacs
Emacs Lisp Ruby
Pull request Compare This branch is 343 commits behind master.

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.

Yet another snippet extension


YASnippet is a template system for Emacs. It allows you to type an abbreviation and automatically expand it into function templates. Bundled language templates includes: C, C++, C#, Perl, Python, Ruby, SQL, LaTeX, HTML, CSS and more. The snippet syntax is inspired from TextMate’s syntax, you can even import most TextMate snippets

YASnippet is an original creation of pluskid who also wrote its predecessor smart-snippet.

Watch a demo screencast

Install the most recent version with git

Clone this repository somewhere

$ cd ~/.emacs.d/plugins
$ git clone

Add the following in your .emacs file:

(add-to-list 'load-path
(require 'yasnippet)
(yas/global-mode 1)

Add your own snippets to `~/.emacs.d/snippets` by placing files there or invoking `yas/new-snippet`.

Install yasnippet with el-get

El-get is a nice way to get the most recent version.

Import textmate snippets (rails example)

Clone the yasnippet repository to `~/.emacs.d/plugins/yasnippet`

cd ~/.emacs.d/plugins/yasnippet
git submodule init
git submodule update
gem install plist trollop
rake convert_bundles             # will convert ruby, rails and html bundles from drnic

Then, in your .emacs file

(add-to-list 'load-path
(require 'yasnippet)
(setq yas/snippet-dirs '("~/.emacs.d/snippets" "~/.emacs.d/extras/imported"))
(yas/global-mode 1)

Open some rails file (model, app, etc) and start using the textmate snippets.

Contributing snippets

Please do not ask me to add snippets to the default collection under /snippets. This is considered frozen and by customizing yas/snippet-dirs you can point yasnippet to good snippet collections out there.

The extras/textmate-import.rb tool can import many actual Textmate snippets. See import-textmate.

I’m focusing on developping textmate-import.rb tool and the yas-setup.el files that guide it with more difficult importation. In the future /snippets snippets will be deprecated and replaced with extras/imported.

Documentation, issues, etc

Please refer to the comprehensive documentation for full customization and support. If you think you’ve found a bug, please report it on the GitHub issue tracker. (please **do not** submit new issues to the old googlecode tracker)

If you run into problems using YASnippet, or have snippets to contribute, post to the yasnippet forum. Thank you very much for using YASnippet!

Something went wrong with that request. Please try again.