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



我在Lion上使用带有ruby支持的普通Vim(由gist安装)。我在rbenv中使用ruby,所以我的路径看起来像/users/me/.renv/shinms:….

从vim内部的路径是

:!echo $PATH
> usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/Users/fb/.rbenv/shims:....

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

:let $PATH = "/bar:/foo"
:!echo $PATH
> /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/foo:/bar

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

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

这是苹果在OS X 10.5 Leopard中引入的一个已知问题。

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

运行sudo chmod ugo-x /usr/libexec/path_helper会解决问题,但您应该看看这篇文章来了解原因。

rvm也有这个问题。如果zsh是启动时的默认shell,则执行/etc/zshenv

这将执行/usr/libexec/path_helper。这设置了基于内容CCD_ 4和CCD_。

rvm的faq提到将/etc/zshenv移动到/zsh/zshrc。我这样做了,它从我在macvim中的路径开始删除了/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin

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

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

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

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

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

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

在~/.bashrc(或您使用的任何shell)文件中,添加以下行:

PATH=/home/me/.rbenv/shims:${PATH}

然后运行source ~/.bashrc(或.zshrc或您正在使用的任何shell!)

这可以通过添加来修复

PATH=/home/me/.rbenv/shims:${PATH}

/etc/zshenv

我不使用mac或zsh(我在linux上),但当我从MATE菜单运行gvim时遇到了这个问题。

我把它添加到我的.virc:中解决了这个问题

if $PATH !~ ".rbenv"
    let $PATH="/home/username/.rbenv/shims:/home/username/.rbenv/bin:" . $PATH
endif

这避免了在从终端运行vim时设置它,否则rbenv路径将被包含两次。

我尝试将应用程序设置为通过终端运行,但无济于事。

是的,在OS X上,它是在打开新控制台窗口时获取的bash_profile,而在Linux上,它则是您的bashrc

最新更新