mirror of
https://github.com/joaotavora/yasnippet.git
synced 2025-10-13 21:13:04 +00:00
122 lines
4.2 KiB
Org Mode
122 lines
4.2 KiB
Org Mode
#+SETUPFILE: org-setup.inc
|
|
#+TITLE: Yet another snippet extension
|
|
|
|
* Quick start
|
|
|
|
*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 [[http://pluskid.lifegoo.org][pluskid]] who also wrote its predecessor
|
|
[[http://code.google.com/p/smart-snippet][smart-snippet]].
|
|
|
|
** Watch a demo
|
|
|
|
On [[http://www.youtube.com/watch?v=ZCGmZK4V7Sg][youtube]].
|
|
|
|
** Installation
|
|
|
|
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_src emacs-lisp :exports code
|
|
(add-to-list 'load-path
|
|
"~/.emacs.d/plugins/yasnippet")
|
|
(require 'yasnippet)
|
|
(yas-global-mode 1)
|
|
#+end_src
|
|
|
|
Add your own snippets to =~/.emacs.d/snippets= by placing files there or
|
|
invoking [[sym:yas-new-snippet][=yas-new-snippet=]].
|
|
|
|
** Import textmate snippets (rails example)
|
|
:PROPERTIES:
|
|
:CUSTOM_ID: import-textmate
|
|
:END:
|
|
|
|
YASnippet lets you use TextMate bundles directly:
|
|
|
|
#+begin_example
|
|
$ cd ~/.emacs.d/plugins
|
|
$ git clone https://github.com/capitaomorte/yasnippet
|
|
$ cd 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. Consider that this is a work-in-progress and many snippets/commands
|
|
might not work. Patches welcome!
|
|
|
|
** Contributing snippets
|
|
|
|
Please *do not ask me* to add snippets to the default collection under
|
|
=/snippets=. This collection is considered frozen. By customizing
|
|
[[sym:yas-snippet-dirs][=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. I'm focusing on developing it and the accompanying =yas-setup.el=
|
|
files that guide it with more difficult importations. The idea is to deprecate
|
|
=/snippets= and replace it with =extras/imported=.
|
|
|
|
** Documentation
|
|
|
|
The documentation has been split into separate parts:
|
|
|
|
1. [[file:snippet-organization.org][Organizing Snippets]]
|
|
Describes ways to organize your snippets in the hard disk.
|
|
|
|
2. [[file:snippet-expansion.org][Expanding Snippets]]
|
|
Describes how YASnippet chooses snippets for expansion at point.
|
|
|
|
Maybe, you'll want some snippets to be expanded in a particular mode,
|
|
or only under certain conditions, or be prompted using =ido=, etc...
|
|
|
|
3. [[file:snippet-development.org][Writing Snippets]]
|
|
Describes the YASnippet definition syntax, which is very close (but
|
|
not equivalent) to Textmate's. Includes a section about converting
|
|
TextMate snippets.
|
|
|
|
4. [[file:snippet-menu.org][The YASnippet menu]]
|
|
Explains how to use the YASnippet menu to explore, learn and modify
|
|
snippets.
|
|
|
|
5. [[file:snippet-reference.org][YASnippet Symbol Reference]]
|
|
An automatically generated listing of all YASnippet commands,
|
|
(customization) variables, and functions.
|
|
|
|
** Bugs, discussion, contributions, etc
|
|
|
|
If you think you've found a bug, please report it on [[https://github.com/capitaomorte/yasnippet/issues][the GitHub issue tracker]]
|
|
(please **do not** submit new issues to the old [[http://code.google.com/p/yasnippet/issues/list][googlecode tracker]]).
|
|
|
|
If you run into problems using YASnippet, or have snippets to contribute,
|
|
post to the [[http://groups.google.com/group/smart-snippet][yasnippet forum]]. Thank you very much for using YASnippet!
|
|
|
|
# Local Variables:
|
|
# mode: org
|
|
# fill-column: 80
|
|
# coding: utf-8
|
|
# End:
|