我在Lion上使用普通的Vim和ruby支持(由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:....
即使我可以创建和修改环境变量:
: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?
答案 0 :(得分:30)
这是a known problem introduced by Apple in OS X 10.5 Leopard。
如果您使用的是Bash或Zsh并使用非交互式shell,则会受到影响。
正在运行sudo chmod ugo-x /usr/libexec/path_helper
会解决您的问题,但您应该看一下这篇文章,了解原因。
答案 1 :(得分:5)
/etc/zshenv
被执行。
执行/usr/libexec/path_helper
。这会根据内容/etc/paths
和/etc/paths.d/
设置路径。
faq for rvm提及将/etc/zshenv
移至/zsh/zshrc
。我这样做了,它从macvim中我的路径的开头删除了/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
。
答案 2 :(得分:4)
我没有在.vimrc中设置shell
选项,因此它自动设置为/bin/zsh
。
然后我发现我在我的.zshrc中进行了rbenv的初始化初始化。我删除了.zshrc
中的初始化结束$ PATH extensioin,因为这已经由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中:/用户/ FB / bin中:在/ usr / local / sbin中:在/ usr /游戏
设置: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 /游戏:/用户/ FB /升降梭箱/本地/ bash的
答案 3 :(得分:2)
在你的〜/ .bashrc(或你正在使用的任何shell)文件中,添加以下行:
PATH=/home/me/.rbenv/shims:${PATH}
然后运行source ~/.bashrc
(或.zshrc或你正在使用的任何shell!)
答案 4 :(得分:1)
只需添加
即可解决此问题PATH=/home/me/.rbenv/shims:${PATH}
到
/etc/zshenv
答案 5 :(得分:1)
我不使用mac或zsh(我在linux上),但是当我从MATE菜单运行gvim时遇到了这个问题。
我通过将其添加到我的.vimrc来解决它:
if $PATH !~ "\.rbenv"
let $PATH="/home/username/.rbenv/shims:/home/username/.rbenv/bin:" . $PATH
endif
如果你从终端运行vim,这可以避免设置它,否则rbenv路径将被包含两次。
我尝试将应用程序设置为通过终端运行,但这没有帮助。
答案 6 :(得分:0)