Edited at

Emacs で Rails の開発効率を上げる Projectile Rails まとめ

More than 3 years have passed since last update.


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 MC-c r CC-c r V など、MVC の移動系でしょうか。

対応するファイルが複数あったり、うまく見つからない場合は選択形式にしてくれるので便利です。


感想

半年くらいつかっているのですが、サーバの起動系や Gemfiledb/schema.rb を開くコマンドなんかはほとんど使っていないです。

もともとは Atom や SublimeText のインクリメンタルサーチが羨ましくて導入したのですが、流石にアレほどは便利にならなかったです。

ただ、仕事などでプロジェクトに長く関われば関わるほどファイルがどこにあるかはわかるようになってくる気がしますので、それほど不便さは感じていません。

特に私はブランチを切って開発する際に一度 Emacs を再起動しています。その機能の開発でよく行き来するファイルなんかは C-c b で出てくるバッファ一覧から探せば十分というのも大きいかもですね。