projectile-rails とは
Ruby on Rails 向けの Emacs 開発モードです。
Rinari が有名っぽいのですが、インストールしてもショートカットとなる C-c ; f' が
undefined` となってしまうので、こっちを試してみることにしました。
「It can be a replacement for rinari.」
と謳っていますし、どんなもんなんでしょうか。期待が高まります。
インストール
package を使ってインストールします。 El-Get とかにも対応しているみたいですが、私が使っていないので試せていません。
設定
~/.emacs.d/init.el
に下記を追加します。
(require 'projectile)
(projectile-global-mode)
(require 'projectile-rails)
(add-hook 'projectile-mode-hook 'projectile-rails-on)
コマンド
いっぱいコマンドあるみたいなので、ざっと書いてみます。他にもあるかもしれません。。
コマンド名 | キーバインド | 説明 |
---|---|---|
projectile-rails-find-model | C-c r m | app/models 配下のファイルを選択して開く |
projectile-rails-find-current-model | C-c r M | 対応する model を開く |
projectile-rails-find-controller | C-c r c | app/controllers 配下のファイルを選択して開く |
projectile-rails-find-current-controller | C-c r C | 対応する controller を開く |
projectile-rails-find-view | C-c r v | app/views 配下のファイルを選択して開く |
projectile-rails-find-current-view | C-c r V | 対応する view を開く |
projectile-rails-find-helper | C-c r h | app/helpers 配下のファイルを選択して開く |
projectile-rails-find-current-helper | C-c r H | 対応する helper を開く |
projectile-rails-find-lib | C-c r l | lib 配下のファイルを選択して開く |
projectile-rails-find-feature | C-c r f | features 配下のファイルを選択して開く |
projectile-rails-find-spec | C-c r p | spec 配下のファイルを選択して開く |
projectile-rails-find-current-spec | C-c r P | 対応する spec を開く |
projectile-rails-find-test | C-c r t | tests 配下のファイルを選択して開く |
projectile-rails-find-current-test | C-c r T | 対応する test を開く |
projectile-rails-find-migration | C-c r n | db/migrate 配下のファイルを選択して開く |
projectile-rails-find-current-migration | C-c r N | 対応する migrate ファイルを開く |
projectile-rails-find-fixture | C-c r u | spec/fixture ファイルを選択して開く |
projectile-rails-find-current-fixture | C-c r U | 対応する fixture ファイルを開く |
projectile-rails-find-javascript | C-c r j | app/assets/javascripts 配下のファイルを選択して開く |
projectile-rails-find-stylesheet | C-c r s | app/assets/styles 配下のファイルを選択して開く |
projectile-rails-find-log | C-c r o | log 配下のファイルを選択して開き、 auto-revert-tail-mode を起動する |
projectile-rails-find-initializer | C-c r i | config/initializers 配下のファイルを選択して開く |
projectile-rails-find-environment | C-c r e | config/environments 配下のファイルを選択して開く |
projectile-rails-find-locale | C-c r a | config/locales 配下のファイルを選択して開く |
projectile-rails-find-mailer | C-c r @ | app/mailers 配下のファイルを選択して開く |
projectile-rails-find-validator | C-c r ! | validator ファイルを選択して開く |
projectile-rails-find-layout | C-c r y | app/views/layouts 配下のファイルを選択して開く |
projectile-rails-find-rake-task | C-c r k | lib/tasks 配下のファイルを選択して開く |
projectile-rails-find-job | C-c r b | app/jobs 配下のファイルを選択して開く |
projectile-rails-console | C-c r ! c, C-c r r |
inf-ruby buffer の中で `rails console' を実行する |
projectile-rails-server | C-c r ! s, C-c r R |
rails server を実行する |
projectile-rails-rake | C-c r ! r | rake task を選択して実行する |
projectile-rails-generate | C-c r ! g |
rails generate を実行する |
projectile-rails-extract-region | C-c r x | 選択した範囲を partial として切り出す |
projectile-rails-goto-file-at-point | C-c r RET, C-c r g f | カーソル位置の対応する constant、template、partial、 gem ファイルに移動する |
projectile-rails-goto-gemfile | C-c r g g |
Gemfile を開く |
projectile-rails-goto-routes | C-c r g r |
config/routes.rb を開く |
projectile-rails-goto-schema | C-c r g d |
db/schema.rb を開く |
projectile-rails-goto-seeds | C-c r g s |
db/seeds.rb を開く |
projectile-rails-goto-spec-helper | C-c r g h |
spec/spec_helper.rb を開く |
覚えておくと便利なのは C-c r M、C-c r C、C-c r V など、MVC の移動系でしょうか。
対応するファイルが複数あったり、うまく見つからない場合は選択形式にしてくれるので便利です。
感想
半年くらいつかっているのですが、サーバの起動系や Gemfile
、db/schema.rb
を開くコマンドなんかはほとんど使っていないです。
もともとは Atom や SublimeText のインクリメンタルサーチが羨ましくて導入したのですが、流石にアレほどは便利にならなかったです。
ただ、仕事などでプロジェクトに長く関われば関わるほどファイルがどこにあるかはわかるようになってくる気がしますので、それほど不便さは感じていません。
特に私はブランチを切って開発する際に一度 Emacs を再起動しています。その機能の開発でよく行き来するファイルなんかは C-c b で出てくるバッファ一覧から探せば十分というのも大きいかもですね。