Answers:
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
在以下路径中放置ruby安装和特定版本~/.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'
我认为,如果您使用的是rbenv,则应该能够做到,以便在切换红宝石版本时,它应该自动将其拾取。
system("rbenv which ruby")
在我的vimrc
使用终端macvim时,我也遇到了这个问题,这是由于我使用zsh的事实而加剧的,由于某种原因,zsh 并不尊重我合成的rvm二进制文件。我意识到,!echo $PATH
在终端macvim中运行时,我的路径不正确,我在顶部添加了几个系统路径,这些路径不在我的常规shell中,仍然导致加载默认MRI。
为了解决这个问题,我根本不需要在.vimrc中指定语法检查器,但是我必须更新zsh的启动方式。在以下位置使用线程:http : //vim.1045645.n5.nabble.com/MacVim-and-PATH-td3388705.html我最终只是简单地运行sudo mv /etc/zshenv /etc/zprofile
,现在一切正常,并且在mvim中我的路径是正确的。通过rvm安装新的红宝石版本时,这还应该解决更新合成的问题。
~/.vim/syntax/ruby.vim
与检查文件语法无关。用于语法高亮显示。参见robots.thoughtbot.com/writing-vim-syntax-plugins