Rubyの開発効率を高めたい!
vimでRubyやRails開発するときに、デフォルトの状態では非力ですよね。
開発効率を高める9つのプラグインを紹介します。
- alpaca_tags ctagsの非同期生成
- neosnippet Rails/sinatra/rspec等の補完
-
swtich.vim
.present?
:.brank?
など対応するキーワードを切り替える - rubocop 文法エラー、スタイルチェック
- vim-rails Railsプロジェクト用プラグイン
- unite-rails Railsプロジェクト用Unite-source
-
vim-endwise
if...end
など対応するキーワードの自動補完 -
ruby-matchit
%
を拡張して、def...end
等のキーワードを移動出来るようにする。 - vim-ref Ruby/Gemsのリファレンスを引く
インストール
vimのプラグイン管理にはNeoBundleを使います。
一括インストールはコチラ
AlpacaTags
Vim + Ctagsってかなり便利ですよね。
tagジャンプの機能を使えば、プロジェクト内のメソッドやクラスの探索を一瞬で行えます。
ただし、IDEと違って手動で生成するのが面倒。。
そう思っていた時期が僕にもありました。
自動化すればいいじゃないか
Gemfile更新のタイミング、ファイル保存のタイミングで自動的にコマンドを実行すれば、
いつでも新鮮なtagsを使うことが出来ます。
-
:AlpacaTagsUpdate
- Git配下のtagsを生成します。
-
:AlpacaTagsBundle
- Gemfileからgemのtagsを生成します。
-
:AlpacaTagsSet
- 生成したtagsを読み込みます。
-
Unite tags
- uniteを使ってtagを操作します
neosnippet
snippets補完は、入力中の文字に対して予め容易された一連の処理を展開する補完です。
これは、一度使ってみると癖になります。
Railsを覚えたてのころ、僕は本気でsnippetsを書いて 全てを補完 することにしました。
View/Controller/Route/Migration/Rspecを補完したneosnippetに死角はありません。(無駄は多い)
Railsで動的に読み込むsnippetを変える場合は、後述するvim-railsを使いましょう。
switch.vim
入れておいて、絶対損は無い と言い切りましょう。
:Switch
をいうコマンドを実行すると、
[true
,false
]や[.blank?
,.present?
]といった定義されたキーワードの切り換えを行えます。
正規表現やキーワードの定義が可能です。
僕は、Railsのcontrollerで記述するstatusをSwitchで切り替えています。
[404, ':not_found']
などと設定しておくと、結構便利ですよ。
rubocop
rubocopを使うと、Rubyのコードがコーディングルールに遵守されているかチェック出来ます。チームで開発する場合には必須ですね。
詳細はコチラの記事が参考になります。
vim-rails
railsを書くときに、移動をスマートにしたり、vimからコマンドを実行する事が出来ます。
私がvimを使う理由は、vim-railsによってコードが何よりも書きやすいからに他なりません。
:R
でview - controllerを移動したり、:A
でテストコードとを行き来出来ます。
ちなみに、autocmd User Rails/spec/models/*
といった構文はもう使えなくなりました。
未だにこちらを使い人は、コチラを参照してください
また、NeoSnippetと併用する場合は下記のように記述します。
autocmd User Rails.view* NeoSnippetSource ~/.vim/snippet/ruby.rails.view.snip
autocmd User Rails.controller* NeoSnippetSource ~/.vim/snippet/ruby.rails.controller.snip
autocmd User Rails/db/migrate/* NeoSnippetSource ~/.vim/snippet/ruby.rails.migrate.snip
autocmd User Rails/config/routes.rb NeoSnippetSource ~/.vim/snippet/ruby.rails.route.snip
unite, unite-rails
:Unite rails/<Tab>
で、Unite上にviews/controllersなどを一覧表示させる事が出来ます。
これをキーマップに指定して、vim-railsと組み合わせればRails内の移動を最速で行う事が出来ます。
僕はRailsの開発時に 必ず2ステップ 以下で移動出来るようにしています。
Gemfileやrspecやroutes.rbなども一瞬です。素敵。
オススメの設定は こちら
vim-endwise
if...end
やdef...end
など、 対になる文字を自動で書き出してくれるプラグイン です。
if
まで押して、<CR>
すると自動でif...end
まで書き出してくれます。
ruby以外にも、幾つかの言語で対応しているのでオススメです。
neocompleteと一緒に使う場合は、neocompleteのdocをちゃんと読むと良いでしょう。
vim-ref vim-ref-ri
vim-refはvim上からリファレンスを引く事が出来る便利なプラグインです。
Uniteと組み合わせて使うことも出来ます
Ref ri link_to
でrails内のlink_toのリファレンスを見ることが出来るようになります。
- w3mやlynxをインストールする
リファレンスの閲覧に必要なのでhomebrewなどでインストールしましょう。
brew install w3m
or brew install lynx
- vimの設定を追加する
設定が無くても使えますが、あればより使いやすくなります。
riのPATHは各々書き換えてください。
おまけmatchit
vimには、対になる文字の上で%
を押す事で、対応する()や{}を移動する機能が備わっています。
matchitを有効にすれば、rubyでよく使うdef...end
なども%で移動出来るようになります。
if !exists('loaded_matchit')
" matchitを有効化
runtime macros/matchit.vim
endif
独り言
コードばかり書いてたら、いつの間にか街に就活生が溢れていました。
この記事を見ている学生エンジニアは、きっとRuby系の会社へ就活しに行くんですね。。。
ファイト!