开发工具 请教:换了 zsh 后 vim 无法在命令模式执行 ruby 相关的命令了

sanye · 2014年04月12日 · 最后由 zillou 回复于 2014年04月13日 · 3470 次阅读

环境: Mac OS X 10.9.2 RVM 1.25.20 Ruby - 2.0.0-p451(除了系统自带 ruby,只安装了这一个版本) vim7.4

问题:换了 zsh 后 vim无法在命令模式执行 ruby 相关的命令了,比如 bundle 或者 rake 命令,而在 bash 下正常。

比如当执行::! bundle exec rake db:migrate,报下面错误:

/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/dependency.rb:296:in `to_specs': Could not find 'bundler' (>= 0) among 4 total gem(s) (Gem::LoadError)
        from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/dependency.rb:307:in `to_spec'
        from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_gem.rb:47:in `gem'
        from /Users/chi/.rvm/gems/ruby-2.0.0-p451@global/bin/bundle:22:in `<main>'
        from /Users/chi/.rvm/gems/ruby-2.0.0-p451/bin/ruby_executable_hooks:15:in `eval'
        from /Users/chi/.rvm/gems/ruby-2.0.0-p451/bin/ruby_executable_hooks:15:in `<main>'

各位大侠帮忙给看看。

bashrc -> zshrc

你现在的 ruby 应该是系统自带的那个而不是你用 rvm 安装的那个

~~我总觉得系统自带的 ruby 都比你用 rvm 安装的版本高…… ~~

试试 set shell=/bin/bash

先试试 source ~/.bashrc,如果可以就把 bashrc 里面带 rvm 的那一行拷进 ~/.zshrc,然后 source ~/.zshrc

升级 Ruby 到 2.1 后,问题解决。 问题产生的原因:vim 默认使用的是系统自带的 ruby 版本。@zillou的方法也能解决问题,但不够彻底。对于系统自带 ruby 版本,我们最好别碰。关于这个,可参考 thoughbot这篇文章 感谢楼上三位大侠:@lufeihaidao , @zillou , @saiga

@sanye 看了 thoughtbot 的那篇文章,还是没明白怎么解决 Vim 命令模式的问题。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号