ホーム DoRuby Vimでファイル保存時に自動でrubocopを実行する
Vimでファイル保存時に自動でrubocopを実行する
 

Vimでファイル保存時に自動でrubocopを実行する

この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

Rubyのコードを変更したら忘れずに Rubycop でチェックしたい。というときに使えるTipsです。

前提

  • Rubocop がインストール済みでrubocopコマンドにpathが通っていること

準備:NeoBundle のインストール

以下のページを参考に Vim に NeoBundle を導入します。(今時のVimプラグイン管理は dein.vim らしいのですが、自分の環境はまだ NeoBundle です…)

既に NeoBundle がインストール済みの場合、次の手順に進みます。

NeoBundleの導入 – Qiita

Vim に syntastic をインストールする

syntastic は Vim 上でのシンタックスチェックしてくれるプラグインです。

~/.vimrc に以下の行を追加します。

" syntastic インストール
NeoBundle 'scrooloose/syntastic'

" syntastic から rubocop を実行する設定
let g:syntastic_mode_map = { 'mode': 'passive', 'active_filetypes': ['ruby'] }
let g:syntastic_ruby_checkers = ['rubocop']

上記を簡単に解説すると…

  • NeoBundle 〜
    このの行はプラグインを使用することを NeoBundle に対して知らせるためのもので、もしそのプラグインがインストールされていなければ、vim の起動時に GitHub のしかるべき場所からローカル(標準では ‘~/.vim/bundle` の下)に clone して、vimのプラグインとして自動的に読み込んでくれる。
  • let g:syntastic_* = 〜
    この行は syntastic プラグインからRubocopを呼び出すための設定

これらを設定して Ruby のソースコードを編集して保存すると Rubocop のチェックが走ります。

実行してみる

ためしに以下のようなコードを入力して保存してみます。

class Hoge
  def foo
    puts "hoge"
  end
end

実行結果は以下のようになります。
警告が出てる行に$>が表示されます。また、:Errors と打つとエラーの一覧が表示されます。
他にもいろいろ便利機能あるので詳しくは、syntasticの公式ページを見て頂くと良いと思います。

enter image description here

これで、ローカルでrubocop流し忘れて jenkins おじさんに怒られずに済みますね。

参考

Rubocopをsyntasticを使ってVimから自動実行する – Qiita

記事を共有

最近人気な記事