Vim'存在问题;s的Ruby插件

Vim'存在问题;s的Ruby插件,ruby,vim,plugins,Ruby,Vim,Plugins,我刚刚安装了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

我刚刚安装了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
我安装了Ruby192,即使我更新RubyVim文件,也会出现这个错误

如果有帮助,这些错误指的是以下两行:

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的

进入
irb
并输入:

Gem.all_load_paths.uniq
它应该返回Gem也知道的安装Gem的路径列表

这就是错误消息中失败的地方,让我怀疑您丢失了一些路径或环境信息,因为vim似乎无法正确找到您的Ruby gems


Encoding::ConverterNotFoundError
是一个核心库异常,因此该部分正常工作,但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日。

请注意,您只需添加

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

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

更新到ruby 1.9.2的最新版本(
1.9.2p180(2011-02-18)
发布时)为我修复了这个问题


当我遇到问题时,我正在运行
1.9.2p132
左右。您可以通过运行
ruby-v

检查当前版本。如果您运行RVM并希望使用默认的ruby,请使用:

let g:ruby_path = "/Users/allen/.rvm/rubies/default/bin"
如果在project.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路径。vim仍然在执行正确的语法高亮显示和缩进,但每当我打开文件并然后,如果我尝试在Vim文件上使用Vim的autocomplete,我也会收到错误消息。听起来Gem还可以。如果Vim的autocomplete出现问题,那么我怀疑它与Ruby没有任何关系,而您得到的消息是一条红鲱鱼,因为它会分散您对真正问题的注意力。如果您有一个IRC客户端应用程序,您可能希望在irc.freenode.net。它们非常活跃,应该能够帮助您快速解决问题。Vim 7.3是用ruby 191创建的。我已经安装了ruby 192,但我仍然有Vim的exe文件调用的文件,即“msvcrt-ruby191.dll”“。那么是预装的vim插件不工作还是vim本身不工作?知道vim用它做什么吗?我在1.8.7和1.9.3之间来回切换,这就是我感兴趣的原因。