補完するならabbrev-mode => snippet.el がよさげ

昨日ながながと書いた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を押すとカーソルが次のプレースホルダの位置に移動するので、カーソル移動もとても楽ちんです。Xcodeobjective-c の補完機能と同じ感じで使えますね。これは便利だ!




つか、elispのライブラリが入ってるディレクトリを覗いたらsnippet.el入ってたよ! ダウンロードしてたのに使うの忘れてたみたい
snippet.elはそもそもここで知ったんだった。Goodpicさん。
http://www.goodpic.com/mt/archives2/2007/02/emacs_snippetel_html.html