如何在vim中使用正确的红宝石?如何在VIM中修改$ PATH?

fbe*_*ens 11 ruby vim osx-lion rbenv

我使用普通的Vim和​​Lion上的红宝石支持(由gist安装).我正在使用ruby和rbenv,所以我的路径看起来像/users/me/.rbenv/shims:.....

从vim内部的路径是

:!echo $PATH
> usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/Users/fb/.rbenv/shims:....
Run Code Online (Sandbox Code Playgroud)

即使我可以创建和修改环境变量:

:let $PATH = "/bar:/foo"
:!echo $PATH
> /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/foo:/bar
Run Code Online (Sandbox Code Playgroud)

路径仍然以/ usr/bin开头.

那么如何在〜/ .rbenv/shims中访问我的ruby 1.9.3而不是/ usr/bin中的系统ruby?

Edw*_*ing 30

这是Apple在OS X 10.5 Leopard中引入的已知问题.

如果您正在使用Bash或Zsh并且正在使用非交互式shell,则会受到影响.

跑步sudo chmod ugo-x /usr/libexec/path_helper会帮助你解决问题,但你应该看一下这篇文章,看看原因.

  • 此解决方案完美无缺.但我发现tpope的[vim-rbenv](https://github.com/tpope/vim-rbenv#faq)提供的建议更好,因为它仍然可以在交互式shell上执行`path_helper`.简单地说`sudo mv/etc/zshenv/etc/zshrc`和vim说Yay! (3认同)

Pad*_*yer 5

rvm也有这个问题.如果zsh是你开始/etc/zshenv执行时的默认shell .

这执行/usr/libexec/path_helper.这根据内容/etc/paths和路径设置路径/etc/paths.d/.

RVM的常见问题提到移动/etc/zshenv/zsh/zshrc.我这样做了,它/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin从macvim的路径开始删除了.


fbe*_*ens 4

我没有shell在.vimrc中设置该选项,因此它被自动设置为.vimrc /bin/zsh

然后我发现我的 .zshrc 中有 rbenv: 的重复初始化。我删除了初始化结束 $PATH 扩展,.zshrc因为它已经由 oh-my-zsh rbenv 插件处理。

即使在清理之后,$PATH 管理仍然发生:!echo $PATH

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/Users/fb/.rbenv/shims:/Users/fb/.rbenv/bin: /Users/fb/bin:/usr/local/sbin:/usr/games

设置:set shell=/bin/bash对我很有帮助,因为我可以在 vim 中使用 bash: :!echo $PATH

/Users/fb/.rbenv/shims:/Users/fb/.rbenv/bin:/Users/fb/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin :/sbin:/bin:/usr/games:/Users/fb/Dropbox/local/bash