昨日ながながと書いたabbrev-modeですが、補完するために使うならsnippet.elってのが便利みたいです。id:hirose31 さんからコメントをいただきました ども〜 : )
使い方ですが、
;; パスの通る場所にsnippet.elをダウンロードする ;; http://www.kazmier.com/computer/snippet.el (require 'snippet) (snippet-with-abbrev-table 'cperl-mode-abbrev-table ("fw" . "$c->forward('$${args}')"))
とすると、cperl-modeで「fw」 が 「$c->forward('args')」 に展開されます。argsは何か文字を入力すると消えてくれます。
$${args}の部分はプレースホルダと呼ぶらしくて、プレースホルダは複数あってもいいみたい。なので
(snippet-with-abbrev-table 'cperl-mode-abbrev-table ("mod" . "$c->model('$${class}')->search(${query}) "))
というのにも対応できます。TABを押すとカーソルが次のプレースホルダの位置に移動するので、カーソル移動もとても楽ちんです。Xcodeのobjective-c の補完機能と同じ感じで使えますね。これは便利だ!
つか、elispのライブラリが入ってるディレクトリを覗いたらsnippet.el入ってたよ! ダウンロードしてたのに使うの忘れてたみたい
snippet.elはそもそもここで知ったんだった。Goodpicさん。
http://www.goodpic.com/mt/archives2/2007/02/emacs_snippetel_html.html