为 Syntastic 指定 ruby​​ 可执行文件

为 Syntastic 指定 ruby​​ 可执行文件

我在 Vim 中使用 Syntastic,它会将较新的 Ruby 语法突出显示为错误。例如,如果我使用必需的关键字参数(在 Ruby 2.1 中引入),如下所示:

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

...它突出显示了定义行并显示“意外的‘,’”。

我怎样才能让它将其识别为有效的 Ruby 语法?我已经更新了~/.vim/syntax/ruby.vim

答案1

为 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-安装将 ruby​​ 安装~/.rubies和特定版本放在以下路径中:~/.rubies/ruby-2.2.0/bin/ruby
  • 右心室将 ruby​​ 安装~/.rvm/rubies和特定版本放在以下路径中:~/.rvm/rubies/ruby-2.2.0/bin/ruby

答案2

使用 macvim 终端时,我也遇到了这个问题,而且由于我使用的是 zsh,因此这个问题变得更加严重。不是关于我提供给 syntastic 的 rvm 二进制文件。我意识到在终端 macvim 中运行时我的路径不正确!echo $PATH,我在顶部附加了几个系统路径,而这些路径不在我的常规 shell 中,这仍然导致默认 MRI 加载。

为了解决这个问题,我根本不需要在 .vimrc 中指定语法检查器,但是我必须更新 zsh 的启动方式。使用以下线程:http://vim.1045645.n5.nabble.com/MacVim-and-PATH-td3388705.html我最终只是运行了一下sudo mv /etc/zshenv /etc/zprofile,现在一切正常,并且我的路径在 mvim 中正确。这也应该解决了通过 rvm 安装新版 ruby​​ 时更新 syntastic 的问题。

答案3

对于 Rails 项目。

  • .ruby-version在项目根目录的文件中设置 ruby​​ 版本。
  • 并从项目根目录启动你的 vim。

Syntastic 将使用指定的 ruby​​ 版本进行语法检查。

相关内容