Yet Another Snippet extension

※原文: http://yasnippet.googlecode.com/svn/trunk/doc/index.html

重要: このドキュメントは YASnippet の SVN trunk に対して適用されるものです。 SVN trunk はこちらから取得できます。 他のバージョンに対するドキュメントはこちらで見られます。

YASnippet は、Emacs のためのテンプレートシステムです。 省略形でタイプしたり、関数テンプレートを自動的に展開したりできるようになります。 次の言語テンプレートが同梱されています: C, C++, C#, Perl, Python, Ruby, SQL, LaTeX, HTML, CSS, その他

スニペットの文法は TextMate の文法にインスパイアされたものです。 そのため、TextMate テンプレートを取り込むこともできます。 YASnippet は smart-snippet という拡張機能を書き直したものです。 これらは両方とも pluskid のオリジナルな作品です。

Video Demo

YouTube にあるデモをご覧ください (高解像度版: yasnippet.avi

インストール

ダウンロード可能なアーカイブは2種類あります。 YASnippet をちょっと試してみるには、よりシンプルな "bundle" バージョンをダウンロードしてください。 もし同梱されているテンプレートを改造したり、自作したりするつもりがあるなら、"normal" バージョンをダウンロードしてください。

yasnippet-bundle.el のインストール

  1. 最新の yasnippet-bundle-x.y.z.el.tgz をダウンロードして、それを展開(解凍)してください。
  2. yasnippet-bundle.el という名前のファイルができるはずなので、それを ~/.emacs.d/plugins/ の下に置いてください(このディレクトリが無かったら作ってください)。
  3. そのファイルを Emacs で開いて、Alt+x eval-buffer と入力してください。

これでおしまいです。 この状態でプログラミング言語のファイルのひとつを開くと、YASnippet メニューが現れます。 テンプレートを挿入するためにはメニューを引っぱってください。 もしくは、trigger key を押してから TAB キーを押して展開してください。

Emacs が起動時に YASnippet を自動的にロードするようにするには、以下のコードをあなたの ~/.emacs ファイルに書いてください:

(add-to-list 'load-path
              "~/.emacs.d/plugins")
(require 'yasnippet-bundle)

この youtube のビデオでは、ここに書いた簡単なインストール手順を実演しています。

Normal 版のインストール

YASnippet を通常の emacs パッケージとしてインストールするには、最新の yasnippet-x.y.z.tar.bz2 をダウンロードして展開(解凍)してください。 yasnippet-x.y.z という名前のディレクトリができるはずなので、それを ~/.emacs.d/plugins に置いてください。 そして、以下のコードをあなたの .emacs ファイルに追加してください:

(add-to-list 'load-path
              "~/.emacs.d/plugins/yasnippet-x.y.z")
(require 'yasnippet) ;; not yasnippet-bundle
(yas/initialize)
(yas/load-directory "~/.emacs.d/plugins/yasnippet-x.y.z/snippets")

カスタマイズのためのドキュメントをお読みください。もしくは、customization グループをご利用ください。

YASnippet の使い方

バージョン 0.6 から、YASnippet はより多くの機能を備えるようになっています。 うまく使うためにそのすべてを知る必要はありません。 しかし、それらの機能を知ることであなたのスニペットのエクスペリエンスを向上させることができます。

この章は複数のドキュメントに分割されています:

1. スニペットを整理する

ハードディスクの中にあるスニペットを体系的に整理する方法(あるいはまったく整理せずに yasnippet-bundle.el だけを使う方法)を説明しています。

2. スニペットを展開する

どのスニペットを展開するか、YASnippet がどのように選んでいるのか、ということを説明します。

あるスニペットについて、特定のモードのとき、またはある条件のときにだけ展開されるようにしたいとか、ido を使って問い合わせさせたいとか、あなたはたぶん考えるでしょう。

3. スニペットを書く

スニペットを定義するための文法について説明します。この文法は TextMate のものにとても似ています(しかし完全に同じというわけではありません)。 TextMate のスニペットをコンバートする方法についての記述も含んでいます。

4. YASnippet メニュについて

スニペットを探し出して、学んで、改造するために、YASnippet メニューをどのように使ったらよいかを説明します。

バグ報告、コミュニティへの貢献、サポート

YASnippet を使ってくださってありがとうございます!

(日本語訳: Seaoak, 2010/Dec/14)