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
来检查当前版本。