Python, Ruby, SQL, LaTeX, HTML, CSS and more. The snippet syntax
is inspired from [TextMate's][textmate-snippets] syntax, you can
even [import](#import) most TextMate templates to
-YASnippet. Watch [a demo on YouTube][youtube-demo] or download a
-[higher resolution version][high-res-demo].
+YASnippet. Watch [a demo on YouTube][youtube-demo].
[textmate-snippets]: http://manual.macromates.com/en/snippets
[youtube-demo]: http://www.youtube.com/watch?v=ZCGmZK4V7Sg
-[high-res-demo]: http://yasnippet.googlecode.com/files/yas_demo.avi
# Installation
## Install with `package-install`
In a recent emacs `M-x list-packages` is the recommended way to list and install packages.
-[MELPA][melpa] keeps a very recent snapshot of YASnippet, see http://melpa.milkbox.net/#installing.
+[MELPA][melpa] keeps a very recent snapshot of YASnippet, see http://melpa.org/#installing.
## Install with el-get
El-get is a nice way to get the most recent version, too. See
-https://github.com/dimitri/el-get for instructions. Be sure to install the
-"master" branch since the 3.x series still use the old googlecode code, base.
-Consider using this "local" recipe.
-
- (push '(:name yasnippet
- :website "https://github.com/capitaomorte/yasnippet.git"
- :description "YASnippet is a template system for Emacs."
- :type github
- :pkgname "capitaomorte/yasnippet"
- :features "yasnippet"
- :compile "yasnippet.el")
- el-get-sources)
+https://github.com/dimitri/el-get for instructions.
## Use `yas-minor-mode` on a per-buffer basis
-To use YASnippet as a non-global minor mode, replace `(yas-global-mode 1)` with
-`(yas-reload-all)` to load the snippet tables. Then add a call to
-`(yas-minor-mode)` to the major-modes where you to enable YASnippet.
+To use YASnippet as a non-global minor mode, don't call
+`yas-global-mode`; instead call `yas-reload-all` to load the snippet
+tables and then call `yas-minor-mode` from the hooks of major-modes
+where you want YASnippet enabled.
- (add-hook 'prog-mode-hook
- '(lambda ()
- (yas-minor-mode)))
+ (yas-reload-all)
+ (add-hook 'prog-mode-hook #'yas-minor-mode)
# Where are the snippets?
1. `snippets/`
- Points to [yasnippet-snippets][yasnippet-snippets] the snippet
- collection of [AndreaCrotti](https://github.com/AndreaCrotti).
+ Points to [yasnippet-snippets] the snippet collection of
+ [AndreaCrotti](https://github.com/AndreaCrotti).
The default configuraiton already points to this dir, so to use
them, just make sure the submodule really was downloaded
2. `yasmate/`
- Points to a github repo of the [yasmate][yasmate] tool, which is
- dedicated to converting textmate bundles into yasnippet snippets.
+ Points to a github repo of the [yasmate] tool, which is dedicated
+ to converting textmate bundles into yasnippet snippets.
To use these snippets you have to run the tool first, so
[see its doc][yasmate]), and then point the `yas-snippet-dirs`
If you have a working ruby environment, you can probably get lucky
directly with `rake convert-bundles`.
+3. [textmate-to-yas.el]
+
+ This is another textmate bundle converting tool using Elisp
+ instead of Ruby.
+
Naturally, you can point `yas-snippet-dirs` to good snippet collections out
there. If you have created snippets for a mode, or multiple modes,
consider creating a repository to host them, then tell users that it
$ cd yasnippet-bug
$ git log -1 --oneline
6053db0 Closes #527: Unbreak case where yas-fallback-behaviour is a list
-$ HOME=$PWD emacs -L # This "sandboxes" your emacs, melpa configuration, etc
+$ HOME=$PWD emacs -L . # This "sandboxes" your emacs, melpa configuration, etc
(require 'yasnippet)
(yas-global-mode 1)
-When I open a foo-mode file I can't expand foo-mode snippets!
+When I open a foo-mode file I don't see foo-mode under the "YASnippet" menu!
OR
-I can't get yasnippet to load because frankinbogen!
+When loading yasnippet I see "Error: failed to frobnicate"!
```
Using `emacs -Q` or temporarily moving your `.emacs` init file to the side
[forum]: http://groups.google.com/group/smart-snippet
[melpa]: http://melpa.milkbox.net/
[yasmate]: http://github.com/capitaomorte/yasmate
+[textmate-to-yas.el]: https://github.com/mattfidler/textmate-to-yas.el
[yasnippet-snippets]: http://github.com/AndreaCrotti/yasnippet-snippets