bashでrakeタスクを補完対象にする、ついでにscript/*も。

これは便利!bashでrakeタスクを補完対象にするでrakeタスクを補完できちゃったのですが、ついでにscript/*のコマンドも補完してみました。

いきなり全部は無理なのでとりあえず、script/generateだけ実装してあります。

インストール

# 実行ファイルをチェックアウトし
svn co http://subversion.assembla.com/svn/rails_bash_completion/trunk rails_bash_completion

# 実行権限を与えて
chmod 755 rails_bash_completion/*

# パスを通して.bashrc内から呼び出します
vim ~/.bashrc
export PATH=$PATH:{チェックアウトパス}

. rails_completion

# 初回だけ
source ~/.bashrc

使い方

rake TABでrakeタスクの補完
script/generate TABでscaffoldやmodelなどの補完
script/generate scaffold entry title: TABでstringやtimeなどの型が補完されます。

1回目はrakeやscript/generateが若干重いですが、キャッシュを実装しているので2回目以降は軽くなります。pluginを導入した・rakeタスクを追加したのに候補が増えない場合はキャッシュをクリアしてください。

キャッシュのクリア

rails_completion.rb cleanup


rubyで実装してありますが、ソースが汚いので拡張する方はあしからず。むしろリファクタリングして!