https://github.com/basyura/unite-rails
(unite-history をパク参考にしました)
前々から作りたいと思いつつ、いい案が浮かばないまま放置していたけど作り始めてみる。
動作は至って普通の unite で、カレントディレクトリが rails プロジェクト内であれば「models」「controllers」「views」などにあるファイル一覧を表示して選択できる。
:Unite rails/model :Unite rails/controller :Unite rails/view :Unite rails/helper :Unite rails/mailer :Unite rails/lib :Unite rails/db :Unite rails/config :Unite rails/log :Unite rails/javascript :Unite rails/stylesheet
たとえば、rails プロジェクト内で
:Unite rails/model
とすると、「RailsRoot/app/models」配下のファイル一覧が表示される。「model」か「models」かで迷ったけど、複数形でないディレクトリ名もあるので単数で統一することにした。
source の数が多いので、一部だけマッピングして汎用的に使えるマップを定義するかだろうか。
nnoremap <C-x> :Unite rails/
rails アプリをあまり書いたことが無いのが難点だけど、ちょいアプリを書いてみた感じではそれなりに使えるのではないかと思う。
rails.vim の gf と :R が便利すぎるので、これの補助ツールとして使う感じ。
RailsRoot の判定方法が雑なんだけど、rails.vim がどう判定しているのかよく分からなかった。そのうちなんとかしたいけど、そんなに実害はないのではないかと思う。
rake db:migrate
や
rails g controller Hoge
といったコマンドとその履歴を扱えるようにしたいのだけど、どうしたものか。