153
147

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2013-08-09

Rubyコードを静的にチェックしてくれるRubocopをVimから実行するプラグインには専用のvim-rubocopもあるんですが、このためだけのためにインストールするのが嫌だったので、syntasticから実行するようにしました。

追記: 2017年現在、 syntastic から ale に乗り換えました。ale は syntastic と異なり非同期で実行されるので Vim が固まりません。

インストール

何はともあれNeoBundleでsyntasticをインストール(NeoBundle自体の使い方については Vim - NeoBundleの導入 - Qiitaなどを参照してください)

.vimrc
NeoBundle 'scrooloose/syntastic'

それとRubocopもインストールします。

gem i rubocop

Rubocopを使うように設定する

.vimrc
NeoBundle 'scrooloose/syntastic'
let g:syntastic_mode_map = { 'mode': 'passive',
            \ 'active_filetypes': ['ruby'] }
let g:syntastic_ruby_checkers = ['rubocop']

syntastic_mode_map'active' もしくは 'passive' を指定します。 'active' だとバッファを保存するたびにsyntasticが走り、 'passive' の場合は :SyntasticCheck 実行時に走ります。

'active_filetypes' は保存の度にsyntasticを走らせるファイルタイプを指定します。

2つをあわせると、基本的にsyntasticは走らせないけど、rubyのときだけは自動的に走らせる、という設定になります。

syntastic_ruby_checkers はrubyでsyntasticが走らせるツールを指定するものです。

使ってみる

あとはrubyファイルを開いて保存するだけです。

syntasticはVimをブロックするので大きなファイルだとストレスたまるかも知れません。その場合は 'active_filetypes' ではなく'passive_filetypes' に指定して、必要なタイミングで :SyntasticCheck を実行するようにするといいでしょう。

もしくは :SyntasticToggleMode を実行すると active と passive を切り換えることもできます。

合わせて読みたい

153
147
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
153
147

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?