我刚刚安装了Vim,当我在ruby文件中打开时,我遇到了这些错误:
Error detected while processing C:\Program files (x86)\Vim\vimfiles\ftplugin\ruby.vim
line: 76
Encoding::ConverterNotFoundError: code converter not found (UTF-16LE to ASCII-8bit)
line: 93
E121 :Undefined varaible: s:ruby_path
E15: Invalid expression: s:ruby_path
line: 76
NameError: uninitialized constant Gem::Quickloader
line: 93
我安装了Ruby 192,即使我更新了ruby vim文件,也会收到此错误。
如果它有帮助,这些是错误所指的两行:
line 76: ruby VIM::command( 'let s:ruby_path = "%s"' % ($: + begin; require %q{rubygems}; Gem.all_load_paths.sort.uniq; rescue LoadError; []; end).join(%q{,}) )
line 93: let &l:path = s:ruby_path
答案 0 :(得分:15)
请注意,您只需添加
,而不是编辑ruby.vim文件let g:ruby_path = ':C:\ruby192\bin'
在您的_vimrc
文件中(或等效于您的平台)。这样你就不需要在更新时重新编辑ruby.vim了。
答案 1 :(得分:5)
如果你运行RVM并想要它的默认ruby,请使用:
let g:ruby_path = "/Users/allen/.rvm/rubies/default/bin"
如果在项目.rvmrc文件中设置ruby解释器,则可以在.rvmrc中创建环境变量:
rvm 1.9.2@projectname --create
export RUBY_BIN=`which ruby | sed 's/ruby$//'`
您可以在.vimrc中使用环境变量:
let g:ruby_path=$RUBY_BIN
(注意你还应该在你的.bashrc或.zshrc中设置默认的$ RUBY_BIN,这样才能在.rvmrc项目之外工作。)
如果〜/ .rvm / rubies / default / bin路径尚不存在,则需要将rvm系统默认设置为ruby。在命令提示符或终端应用程序中,输入:
rvm use 1.9.2 --default
使用您需要的任何红宝石版本。
答案 2 :(得分:0)
你是如何安装Ruby的?
进入irb
并输入:
Gem.all_load_paths.uniq
应该返回Gem知道的安装宝石的路径列表。
这就是你的错误信息失败并导致我怀疑你错过了一些路径或环境信息,因为看起来vim无法正确找到你的Ruby宝石。
Encoding::ConverterNotFoundError
是一个核心库异常,因此该部分正常工作,但看起来Gem命令无效。
答案 3 :(得分:0)
您的问题可能是Ruby 1.9 - AFAIK Vim仅适用于Ruby 1.8,因此您可能必须降级Ruby版本以使Vim正常工作。
答案 4 :(得分:0)
我打开文件“C:... \ vim73 \ ftplugin \ ruby.vim”并在第73行左右,代码为:
if !exists("s:ruby_path")
我补充说:
let s:ruby_path = 'C:\ruby192\bin'
到目前为止,vim对编辑ruby文件感到高兴。注意我将ruby安装在“C:”目录而不是“Program Files”中,以获得更好的ruby.exe路径名。
我的ruby.vim版本日期为2010年3月15日。
答案 5 :(得分:0)
更新到Ruby 1.9.2的最新版本(发布时1.9.2p180 (2011-02-18)
)为我修复了这个问题。
当我遇到问题时,我正在运行1.9.2p132
左右,这似乎是patched around Dec 2010。您可以通过运行ruby -v
来检查当前版本。