記事の引越しから漏れていたのでサルベージ。

zsh用のscript/generateおよびscript/destroyの補完関数です。
以下のスクリプトを.zshrcなどに書いておけば、
./script/generateに続けてTABキーを押す事で
generatorの入力を補完できます。

~/.zshrc

shell>>
_generate () {
if [ ! -f .generators ]; then
./script/generate --help | grep '^ [^ ]: ' | sed 's/[^:]:/compadd/' | sed 's/,//g' > .generators
fi
cat .generators
}

compdef _generate generate
compdef _generate destroy
<<--

RubyGems、Plugin、BuildInの3種類のgeneratorを検出して補完します。
検出動作が重いので、カレントディレクトリにキャッシュファイルを作成して
2度目以降の補完を高速化しています。
generatorを追加した場合など、キャッシュを無効化したい場合は

shell>>
$ rm .generators
<<--

でキャッシュファイルを削除してください。

補完が重くても余計なファイルが生成されるよりはマシ、
という場合はこちらをどうぞ。

shell>>
_generate () {
./script/generate --help | grep '^ [^ ]*: ' | sed 's/[^:]*:/compadd/' | sed 's/\,//g'
}

compdef _generate generate
compdef _generate destroy
<<--

誰かが作らないかなあ、と思って待っていたのですが、
なかなか出て来ないので自分で作りました。
もっと良いものがあったら教えていただけると嬉しいです。

posted by genki genki on Mon 26 Nov 2007 at 05:06 with 0 comments