Rails 関係の .zshrc

今日は時間がないので,ちょっとした小ネタ.MacRails というと TextMate が有名ですが,圧倒的に手に馴染んでいるということで vi を使っています.ただし,vi といっても vim なので,spec と実装を上下に分割して表示したりしています.毎回,コマンドラインで二つのファイルを指定するのは面倒なので,以下のような関数を .zshrc に書いています.

function viw() { vi -o spec/**/$1_spec.rb app/**/$1.rb }
function viwd() { vi -o spec/**/{$1,$2}_spec.rb app/**/{$1,$2}.rb}
function vic() { viw $1_controller }
function vicd() { viwd $1_controller $2_controller }
function vih() { viw $1_helper }
function vihd() { viwd $1_helper $2_helper}
function vir() { vi -o spec/**/$1_routing_spec.rb config/routes.rb }
function viv() { vi -o app/**/$1.html.haml }
function vicv() { vi -o spec/**/$1_controller_spec.rb app/**/$1_controller.rb app/**/$1/*.html.haml }
viw
モデルの仕様と実装を同時に開く (例: viw campus)
vic
コントローラの仕様と実装を同時に開く(例: vic campuses)
vih
ヘルパの仕様と実装を同時に開く (例: vih campuses)
vir
ルーティングの仕様と routes.db を同時に開く (例: vir campuses)
viv
HAML をすべて開く (例: viv campuses/index).view の仕様は記述していないため HAML のみ
vicv
コントローラと関連する HAML をすべて同時に開く (vicv campuses: ファイルを開きすぎるので,あまり使っていない)
最後にd が付いたもの
二つの仕様と二つの実装を同時に開けるようにしたもの(例: viw campus gakunen).

モデルの場合だけ単数形にすることを忘れなければ,後は,コマンド名のみの変えるだけで目的のファイルが開けるようになっています.zsh の ** のおかげでフォルダ階層が深くなっていても,目的のファイルが開けるようになっています.