Syntasticで新しいRuby構文を認識させるにはどうすればよいですか?


10

私はVimでSyntasticを使用していますが、新しいRuby構文がエラーとして強調表示されます。たとえば、次のように、Ruby 2.1で導入された必須のキーワード引数を使用するとします。

def distance(from:, to:)
  # whatever
end

...定義行が強調表示され、「予期しない「、」」と表示されます。

これを有効なRuby構文として認識させるにはどうすればよいですか?私はすでに更新しました~/.vim/syntax/ruby.vim


注:ファイルの構文チェック~/.vim/syntax/ruby.vimとは関係ありません。構文の強調表示のためです。robots.thoughtbot.com/writing-vim-syntax-pluginsを参照
Nathan Long

回答:


9

SyntasticのRuby実行可能ファイルを指定します

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インストーラーには、バイナリーの配置場所に関する独自の規則があります。例えば:

  • ruby-installは、次の~/.rubiesようなパスにrubyインストールと特定のバージョンを配置します~/.rubies/ruby-2.2.0/bin/ruby
  • RVMは、Rubyインストール~/.rvm/rubiesと特定のバージョンを次のようなパスに配置します~/.rvm/rubies/ruby-2.2.0/bin/ruby

FYI:あなたがRVMを使用している場合、それは次のようになりますlet g:syntastic_ruby_exec = '~/.rvm/rubies/ruby-2.2.0/bin/ruby'
ベン・

@ベングッドポイント-更新された回答
Nathan Long

3
syntasticの新しいバージョンでは、それはです:let g:syntastic_ruby_mri_exec='path/to/ruby/executable'
RantriX

1
rbenvを使用しlet g:syntastic_ruby_exec = '~/.rbenv/shims/ruby'ている場合は、Rubyのバージョンが切り替わったときに自動的に取得されるようにできるはずです。
Thermatix

ニース@Thermatix ..私system("rbenv which ruby")は.vimrcで使用しました
rthbound '30 / 12/16

4

ターミナル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を更新する問題も解決するはずです。


これは実際の修正です!問題は、OSXのbrewを介してインストールされたzshに関する警告が原因です。
Jikku Jose

ランダムな質問-「ターミナルmacvim」は単なるvimではありませんか?プレーンなvimを使用するよりも、ターミナルでMacvimを使用するとどのような利点がありますか?
ニック・

0

Railsプロジェクトの場合。

  • Rubyのバージョン.ruby-versionをプロジェクトのルートにあるファイルに設定します。
  • そして、プロジェクトルートからvimを起動します。

Syntasticは指定されたRubyバージョンで構文チェックを行います。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.