如何使用Syntastic Vim插件和Rbenv启用Rubocop?

时间:2014-11-23 23:20:46

标签: ruby vim syntastic rubocop

我想使用Syntastic启用Rubocop检查器。我已经设置了它有一个检查器并给出了可执行文件的路径。虽然:SyntasticInfo报告它不是主动检查程序。另外:SyntasticCheck rubocop报告rubocop不是可用的检查器。

我还需要其他设置吗?这可能是由rubocop --version提供的警告消息引起的吗?


.vimrc设置

let g:syntastic_ruby_checkers          = ['rubocop', 'mri']
let g:syntastic_ruby_rubocop_exec      = '/Users/jjasonclark/.rbenv/shims/rubocop'

rubocop警告信息

warning: parser/current is loading parser/ruby21, which recognizes
warning: 2.1.5-compliant syntax, but you are running 2.1.2.
0.26.0

编辑:根据评论,我发现了部分解决方法。可以使用命令行参数调用RBENV填充程序以指定Ruby版本。这适用于手动运行命令,但它不适用于Syntastic插件。我的猜测是,由于Rubocop关于解析器版本的警告消息,它无法正常工作。

let g:syntastic_ruby_rubocop_exec = 'RBENV_VERSION=2.1.2 /Users/jjasonclark/.rbenv/shims/rubocop'

编辑:我安装了Ruby 2.1.5并更新了RBENV_VERSION值以成功删除警告消息。这仍然不能使Rubocop for Syntastic。 :SyntasticCheck rubocop仍然报告syntastic: warning: checker rubocop is not available

1 个答案:

答案 0 :(得分:1)

Syntastic正在加载错误版本的Ruby。在命令行中输入ruby -v && which ruby

现在,将设置的第二行更改为:

let g:syntastic_ruby_rubocop_exec      = '/Users/jjasonclark/.rbenv/shims/ruby /Users/jjasonclark/yourprojectname/bin/rubocop'

使用which rubywhich rubocop显示的任何路径。