原文: http://yasnippet.googlecode.com/svn/trunk/doc/index.html (translated on 2010/Dec/21) ⇒ editor's room

Yet Another Snippet extension

〔重要〕 このドキュメントは 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 で開いて、M-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 group をご利用ください。

YASnippet の使い方

バージョン 0.6 から、YASnippet はより多くの機能を備えるようになっています。 スニペットを利用するだけなら、YASnippet のすべてを知る必要はありません。 しかし、それらの機能を知ることで、コーディングがもっと楽しくなるでしょう。

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

1. Organizing Snippets (スニペットを整理する)

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

2. Expanding Snippets (スニペットを展開する)

現在のカーソル位置で展開すべきスニペットを YASnippet がどのように選んでいるのか、ということを説明します。

あるスニペットについて、特定のモードのとき、またはある条件のときにだけ展開されるようにしたいと思うかもしれません。 また、ido を使ってプロンプトを表示させたいと思うかもしれません。

3. Writing Snippets (スニペットを書く)

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

4. The YASnippet menu (YASnippet メニュについて)

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

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

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