我刚刚安装了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
Run Code Online (Sandbox Code Playgroud)
我安装了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
Run Code Online (Sandbox Code Playgroud)
小智 15
请注意,您可以添加,而不是编辑ruby.vim文件
let g:ruby_path = ':C:\ruby192\bin'
Run Code Online (Sandbox Code Playgroud)
在您的_vimrc文件中(或等效于您的平台).这样你就不需要在更新它时继续重新编辑ruby.vim.
如果您运行RVM并想要其默认的ruby,请使用:
let g:ruby_path = "/Users/allen/.rvm/rubies/default/bin"
Run Code Online (Sandbox Code Playgroud)
如果在项目.rvmrc文件中设置ruby解释器,则可以在.rvmrc中创建环境变量:
rvm 1.9.2@projectname --create
export RUBY_BIN=`which ruby | sed 's/ruby$//'`
Run Code Online (Sandbox Code Playgroud)
您可以在.vimrc中使用环境变量:
let g:ruby_path=$RUBY_BIN
Run Code Online (Sandbox Code Playgroud)
(注意,您还应该在.bashrc或.zshrc中设置默认的$ RUBY_BIN,以便在.rvmrc项目之外工作.)
如果〜/ .rvm/rubies/default/bin路径尚不存在,则需要将rvm系统默认设置为ruby.在命令提示符或终端应用程序中,输入:
rvm use 1.9.2 --default
Run Code Online (Sandbox Code Playgroud)
使用你需要的任何红宝石版本.
你是如何安装Ruby的?
进入irb并输入:
Gem.all_load_paths.uniq
Run Code Online (Sandbox Code Playgroud)
它应该返回 Gem 也知道的安装 gem 的路径列表。
这就是您的错误消息中失败的原因,并导致我怀疑您缺少某些路径或环境信息,因为 vim 似乎无法正确找到您的 Ruby gem。
Encoding::ConverterNotFoundError是一个核心库异常,因此该部分正在工作,但看起来 Gem 命令不起作用。