# -*- mode: org; fill-column: 80 -*- #+TITLE: Yet another snippet extension #+OPTIONS: toc:1 #+STARTUP: showall #+STYLE: # External links # #+LINK: smart-snippet http://code.google.com/p/smart-snippet #+LINK: pluskid http://pluskid.lifegoo.org #+LINK: screencast http://www.youtube.com/watch?v=ZCGmZK4V7Sg #+LINK: docs http://capitaomorte.github.com/yasnippet #+LINK: issues https://github.com/capitaomorte/yasnippet/issues #+LINK: googlecode-tracker http://code.google.com/p/yasnippet/issues/list #+LINK: forum http://groups.google.com/group/smart-snippet *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-textmate][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 #+BEGIN_EXAMPLE $ cd ~/.emacs.d/plugins $ git clone https://github.com/capitaomorte/yasnippet #+END_EXAMPLE Add the following in your =.emacs= file: #+BEGIN_EXAMPLE (add-to-list 'load-path "~/.emacs.d/plugins/yasnippet") (require 'yasnippet) (yas/global-mode 1) #+END_EXAMPLE Add your own snippets to `~/.emacs.d/snippets` by placing files there or invoking `yas/new-snippet`. * Install yasnippet with el-get [[https://github.com/dimitri/el-get.gti][El-get]] is a nice way to get the most recent version. * Import textmate snippets (rails example) :PROPERTIES: :CUSTOM_ID: import-textmate :END: Clone the yasnippet repository to `~/.emacs.d/plugins/yasnippet` #+BEGIN_EXAMPLE 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 #+END_EXAMPLE Then, in your .emacs file #+BEGIN_EXAMPLE (add-to-list 'load-path "~/.emacs.d/plugins/yasnippet") (require 'yasnippet) (setq yas/snippet-dirs '("~/.emacs.d/snippets" "~/.emacs.d/extras/imported")) (yas/global-mode 1) #+END_EXAMPLE 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 [[docs][documentation]] for full customization and support. If you think you've found a bug, please report it on [[issues][the GitHub issue tracker]]. (please **do not** submit new issues to the old [[googlecode-tracker][googlecode tracker]]) If you run into problems using YASnippet, or have snippets to contribute, post to the [[forum][yasnippet forum]]. Thank you very much for using YASnippet!