为什么我的vim命令行路径与我的shell PATH不同?

Rob*_*ark 10 vim command-line path

例如,

$ 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
Run Code Online (Sandbox Code Playgroud)

我希望它们是一样的.他们为什么不同?

如果它有所不同,这是我的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)
Run Code Online (Sandbox Code Playgroud)

Dty*_*Dty 11

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

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

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

这个SO答案


Rob*_*ark 3

我无法使用 zsh 解决这个问题,最终使用 bash 作为我的 vim shell。

这就是我所做的:

  1. 修改我的.zshrc工作方式bash
  2. ln -s .zshrc .bashrc
  3. 添加set shell=bash到我的.vimrc文件中

现在我的 vim 命令行 PATH 等于我的 zsh shell PATH。