如,
$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/bin:~/bin:/usr/local/Cellar/python3/3.2.3/bin
$ vim
:! echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:~/bin:/usr/local/Cellar/python3/3.2.3/bin
我希望它们是一样的。他们为什么不同?
如果它有所不同,这是我的shell,vim版本和操作系统版本:
$ echo $SHELL
SHELL=/usr/local/bin/zsh
$ /usr/local/bin/zsh --version
zsh 5.0.0 (x86_64-apple-darwin12.0.0)
$ vim --version
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Jun 20 2012 13:16:02)
Compiled by root@apple.com
$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.8.2
BuildVersion: 12C60
(Mountain Lion)
答案 0 :(得分:11)
这是由known problem引入的 OS X 10.5 Leopard中的Apple。
如果您正在使用Bash或Zsh并且正在使用非交互式shell,那么 受到影响。
正在运行
sudo chmod ugo-x /usr/libexec/path_helper
会解决您的问题, 但你应该看一下这篇文章,看看为什么。
答案 1 :(得分:3)
在SO和SU上有许多类似的问题。
你的shell执行不同的* rc文件,具体取决于它在启动时给出的参数。因此,您需要设置Vim,以便使用正确的参数启动您的shell。
以下有助于bash,我几乎可以肯定zsh中有类似的标志。
set shell=bash\ -i
请参阅$ man zsh
了解正确的标志和正确的执行顺序。
答案 2 :(得分:-1)
我不使用mac或zsh(我在linux上),但是当我从MATE菜单运行gvim时遇到了这个问题。
我通过将其添加到我的.vimrc来解决它:
if $PATH !~ "\.rbenv"
let $PATH="/home/username/.rbenv/shims:/home/username/.rbenv/bin:" . $PATH
endif
如果从终端运行vim,这可以避免设置它,否则rbenv路径将被包含两次。
我尝试将应用程序设置为通过终端运行,但这没有帮助。