SublimiteText2 RubyTest“;验证Ruby语法;触发UTF-8错误
我正在Mac OS 10.7.5上使用rvm和ruby 1.9.3 我希望能够使用Sublime Text 2 RubyTest包来验证我的Ruby语法 但是,当我尝试在任何Ruby文件(SublimiteText2 RubyTest“;验证Ruby语法;触发UTF-8错误,ruby,utf-8,sublimetext2,ruby-test,Ruby,Utf 8,Sublimetext2,Ruby Test,我正在Mac OS 10.7.5上使用rvm和ruby 1.9.3 我希望能够使用Sublime Text 2 RubyTest包来验证我的Ruby语法 但是,当我尝试在任何Ruby文件(test.rb)上运行Tools->RubyTest->Verify Ruby Syntax)时,RubyTest控制台中会显示以下错误: /Users/jladieu/.rvm/rubies/ruby-1.9.3-p194/bin/ruby:1:无效的多字节字符(US-ASCII) 我的test.rb文件内容
test.rb
)上运行Tools->RubyTest->Verify Ruby Syntax
)时,RubyTest控制台中会显示以下错误:
/Users/jladieu/.rvm/rubies/ruby-1.9.3-p194/bin/ruby:1:无效的多字节字符(US-ASCII)
我的test.rb
文件内容非常简单:
类测试
你好
把“你好,世界”
结束
结束
我的RubyTest.sublime\u设置文件如下所示:
{
“erb_verify_命令”:“erb-xT-{file_name}| ruby-c”,
“ruby\u verify\u命令”:“ruby-c{file\u name}”,
“run_ruby_unit_命令”:“bundle exec ruby-Itest{relative_path}”,
“run_single_ruby_unit_命令”:“bundle exec ruby-Itest{relative_path}-n'{test_name}”,
“run_cumber_命令”:“宙斯cumber{relative_path}——无颜色”,
“run_single_cucumber_命令”:“宙斯cumber{relative_path}:{line_number}——无颜色”,
“run_rspec_命令”:“zeus rspec{relative_path}”,
“run_single_rspec_命令”:“zeus rspec{relative_path}:{line_number}”,
“ruby\u单元\u文件夹”:“测试”,
“ruby\u cumber\u文件夹”:“功能”,
“ruby_rspec_文件夹”:“spec”,
“check_for_rbenv”:false,
“check_for_rvm”:正确,
“ruby_use_scratch”:false,
“运行时保存”:正确,
“忽略的目录”:[“.git”、“供应商”、“tmp”],
“隐藏面板”:false,
“在回调之前”:“,
“在_回调之后”:”
}
在命令行中运行以下命令可以验证我的语法:
$ ruby -c test.rb
Syntax OK
最后,我尝试了多种方法来解决US-ASCII问题,但都无济于事:
- 将
-ku
标志添加到RubyTest设置中的verify命令
- 在打开sublime之前,在my
.bash_配置文件中导出RUBYOPT=-Ku
在我的bash配置文件中导出LC_CTYPE=en_US.UTF-8 LANG=en_US.UTF-8
,然后再打开sublime
有没有人能够使用类似的设置来实现这一点
注意:找到了答案(见下文),但如果有人找到更好的解决方案,请感兴趣,谢谢 根据Aaron和Thomas的反馈进行进一步调查,将ruby\u verify\u命令
从ruby-c{file\u name}
更改为-c{file\u name}
即可
原因是使用check\u for\u rvm:true
导致运行的命令为:
$ /Users/jladieu/.rvm/bin/rvm-auto-ruby ruby -c test.rb
/Users/jladieu/.rvm/rubies/ruby-1.9.3-p194/bin/ruby:1: invalid multibyte char (US-ASCII)
将ruby\u verify\u命令
正确设置为省略ruby
将导致运行以下命令:
$ /Users/jladieu/.rvm/bin/rvm-auto-ruby -S -c test.rb
Syntax OK
您可以尝试使用{relative\u path}
而不是{file\u name}
?Thomas,感谢您的建议--我尝试过了,现在没有将任何内容打印到RubyTest控制台,根本没有发生任何事情(控制台甚至没有显示),因此不确定这是个窍门。实际上{file\u name}
应该。您可以尝试设置rvm检测,但这只是一个猜测。我指的是“check\u for\u rvm”:true
设置,但您已经应用了它。最奇怪的是,在添加bundle exec ruby之前,我遇到了这个错误,您已经在上面添加了bundle exec ruby。现在我的测试正常运行了。然而,当我验证语法时,当我将bundle exec ruby添加到verify命令时,我现在得到了ruby:No这样的文件或目录--foobar.rb(LoadError)。我想它正在工作,但是现在找不到文件了?谢谢你发布这个!工作起来很有魅力。