Emacs/yasnipettで、やさしいコードスニペットの作り方
コーディングの頻出パターンを小さなコード片(スニペット)として保存すると楽だけど、yasnipett一度作ってみないと書きにくいよね!って話
たとえば、
class MyClass(object): def __init__(self): print "Hello" def __repr__(self): return self
これは実際に、記述すべき内容は "MyClass"ぐらいで、他は外部からその都度呼び出せばいいじゃん、という感じで作られたのがyasnipetts
ダウンロードとかインストールはyasnippet - Project Hosting on Google Codeから
設定ファイルにはこれぐらい書いておけば大丈夫
(require 'yasnippet) (yas/initialize) (yas/load-directory "~/.emacs.d/snippets/")
最初からある程度のスニペットは同梱されてます
超簡単なsnipetts作例
スニペットごとき作るの迷っていては、その分コーディングしたほうがマシ。シンプルに考えましょう。
snipetts/text-mode/hogehoge が共通のスニペット
snipetts/text-mode/*-mode/hogehoge がmodeに対応するスニペット
モードごとの継承関係で引き継がれているようです
snipetts/text-mode/hello
#name : hello # -- Hello, new snipetts! $0
ね、簡単でしょ?
# -- ではじまって、 $0 で終了です
引数をとりたいときは $1 , $2 .... とする。 $0 に辿りついたら終了
#name : greeding # -- Hello, $1! $1 is your name. My name is $2 $0
スニペット記述用のスニペット
メタスニペット的な何か
~/.emacs.d/snipetts/text-mode/snipetts
#contributor : mizchi <miz404@gmail.com> #name : snipetts # -- #contributor : mizchi <miz404@gmail.com> #name : $1 # -- $0
snipetts
Anythingからyasnipettsしようぜ!
Anythingキチガイにはanything-c-source-yas-completeするのがおすすめ
シンタックスうろ覚えでもコード書ける!!
例:
(global-set-key "\C-t" 'anything-c-yas-complete)
http://svn.coderepos.org/share/lang/elisp/anything-c-yasnippet/anything-c-yasnippet.el からDL
yasnippet, anything-c-yasnippetのまとめエントリー - IMAKADO::BLOG
yasnipett0.6.1以上だと動かないのでパッチ当てる。
yasnippet-0.6.1b(c?)を使うとanything-c-yasnippet.elが動かない - 放牧日記