例如,
$ 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
我希望他们是相同的。 为什么他们有什么不同?
如果它的确与众不同,这是我的壳,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)
这是一个已知的问题苹果在OS X 10.5 Leopard中引入。
如果你正在使用bash或岩组,并使用非交互shell,你都会受到影响。
运行sudo chmod ugo-x /usr/libexec/path_helper
会治好你的,但你应该看看文章,看看为什么。
从这个SO答案
上有SO和SU许多类似的问题。
你的shell执行取决于它的参数给出在启动时不同* RC文件。 因此,你需要设置的Vim,使其launchs用正确的参数你的shell。
下面在bash帮助,我几乎可以肯定有一个类似的标志的zsh。
set shell=bash\ -i
见$ man zsh
为右旗和正确的执行顺序。
我无法用zsh来解决这个问题,并最终使用bash我的vim的外壳。
这是我做的:
- 修改了我的.zshrc使用bash工作
-
ln -s .zshrc .bashrc
- 添加
set shell=bash
我的.vimrc文件
现在我的VIM命令行PATH等于我的zsh shell路径。
我不使用Mac或zsh的(我在Linux上),但是我遇到了这个问题,当我从MATE菜单运行GVIM。
我解决了它加入这个对我的.vimrc:
if $PATH !~ "\.rbenv"
let $PATH="/home/username/.rbenv/shims:/home/username/.rbenv/bin:" . $PATH
endif
这避免了设置,如果你从一个终端运行VIM,否则rbenv路径将包括两次。
我试图通过设置一个终端来运行应用程序,但是这并没有帮助。