如何让 Syntastic 识别更新的 Ruby 语法?

Nat*_*ong 10 vim ruby

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

def distance(from:, to:)
  # whatever
end
Run Code Online (Sandbox Code Playgroud)

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

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

Nat*_*ong 9

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

Syntastic 调用ruby -c检查文件的语法,因此它显示的错误取决于它使用的 ruby​​ 版本。

您可以将其指向您要使用的对象,如下所示:

let g:syntastic_ruby_exec = 'path/to/ruby/executable'
Run Code Online (Sandbox Code Playgroud)

注意:在较新版本的 Syntastic 上:

let g:syntastic_ruby_mri_exec = 'path/to/ruby/executable'
Run Code Online (Sandbox Code Playgroud)

$ type ruby会告诉您当前的 Ruby 可执行文件在哪里。Ruby 安装程序对放置二进制文件的位置有自己的约定。例如:

  • ruby-install将 ruby​​ 安装~/.rubies和特定版本放在路径中~/.rubies/ruby-2.2.0/bin/ruby
  • RVM将 ruby​​ 安装~/.rvm/rubies和特定版本放在路径中~/.rvm/rubies/ruby-2.2.0/bin/ruby

  • 对于较新版本的 Syntastic,它是:`let g:syntastic_ruby_mri_exec='path/to/ruby/executable'` (3认同)