Vim的Ruby插件存在问题

我刚刚安装了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 

请注意,您可以添加,而不是编辑ruby.vim文件

 let g:ruby_path = ':C:\ruby192\bin' 

在您的_vimrc文件中(或您的平台的等效文件)。 这样你就不需要在更新它时继续重新编辑ruby.vim。

如果您运行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 

使用你需要的任何ruby版本。

你是如何安装Ruby的?

进入irb并输入:

 Gem.all_load_paths.uniq 

它应返回Gem知道的安装gem的路径列表。

这就是你的错误信息失败并导致我怀疑你缺少一些路径或环境信息,因为看起来vim无法正确找到你的Rubygem。

Encoding::ConverterNotFoundError是一个核心库exception,因此该部分正在工作,但看起来Gem命令不起作用。

您的问题可能是Ruby 1.9 – AFAIK Vim仅适用于Ruby 1.8,因此您可能必须降级Ruby版本才能使Vim正常工作。

我打开了文件“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日。

更新到最新版本的Ruby 1.9.2(发布时为1.9.2p180 (2011-02-18) )为我解决了这个问题。

当我遇到问题时,我正在运行1.9.2p132左右,这似乎已经在2010年12月左右修补了 。 您可以通过运行ruby -v来检查当前版本。