今日は時間がないので,ちょっとした小ネタ.Mac で Rails というと 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 の ** のおかげでフォルダ階層が深くなっていても,目的のファイルが開けるようになっています.