回答:
Syntasticはruby -c
ファイルの構文をチェックするための呼び出しを行うため、表示されるエラーは、使用しているrubyのバージョンによって異なります。
次のように、使用したいものを指定できます。
let g:syntastic_ruby_exec = 'path/to/ruby/executable'
注: Syntasticの新しいバージョン:
let g:syntastic_ruby_mri_exec = 'path/to/ruby/executable'
$ type ruby
現在のRuby実行可能ファイルの場所を教えてくれます。Rubyインストーラーには、バイナリーの配置場所に関する独自の規則があります。例えば:
~/.rubies
ようなパスにrubyインストールと特定のバージョンを配置します~/.rubies/ruby-2.2.0/bin/ruby
~/.rvm/rubies
と特定のバージョンを次のようなパスに配置します~/.rvm/rubies/ruby-2.2.0/bin/ruby
let g:syntastic_ruby_exec = '~/.rvm/rubies/ruby-2.2.0/bin/ruby'
let g:syntastic_ruby_mri_exec='path/to/ruby/executable'
let g:syntastic_ruby_exec = '~/.rbenv/shims/ruby'
ている場合は、Rubyのバージョンが切り替わったときに自動的に取得されるようにできるはずです。
system("rbenv which ruby")
は.vimrcで使用しました
ターミナルmacvimを使用すると、この問題も発生しました。これは、zshを使用していて、何らかの理由でsyntasticが提供したrvmバイナリを尊重していなかったために悪化しました。!echo $PATH
端末のmacvimで実行しているときにパスが正しくないことに気づきました。通常のシェルにないいくつかのシステムパスが上部に追加されているため、デフォルトのMRIがロードされます。
これを修正するには、.vimrcで構文チェッカーを指定する必要はありませんでしたが、zshの起動方法を更新する必要がありました。でスレッドを使用する:http://vim.1045645.n5.nabble.com/MacVim-and-PATH-td3388705.html私は単に実行してしまったsudo mv /etc/zshenv /etc/zprofile
と今ではすべての作品と私のパスがmvimで正しいです。これは、rvmを介して新しいRubyバージョンをインストールするときにsyntasticを更新する問題も解決するはずです。
~/.vim/syntax/ruby.vim
とは関係ありません。構文の強調表示のためです。robots.thoughtbot.com/writing-vim-syntax-pluginsを参照