MacPorts Vim 使用 /etc/paths 作为 $PATH 的前缀

MacPorts Vim 使用 /etc/paths 作为 $PATH 的前缀

由于某种原因,似乎 vim (通过 macports: 安装VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Feb 25 2013 01:56:26) 使用 /etc/paths 文件作为我的 $PATH 变量的前缀。

虽然我不介意添加这些,但它非常方便前缀在所有情况下,我都无法覆盖它(或者至少我还没有找到这样做的方法)。

问题示例:

" First we overwrite $PATH with something to show the problem
:let $PATH='just_some_non_existing_dir'

" Now print the path in the shell to show the problem (note the !)
:!echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/texbin:just_some_non_existing_dir

我怎样才能防止 Vim 为我执行的每个外部命令添加 $PATH 前缀?

关于我的环境的一些信息:

OS X: 10.8.2 VIM: Vi IMproved 7.3(2010 年 8 月 15 日,编译于 2013 年 2 月 25 日 01:56:26) zsh: 4.3.11(i386-apple-darwin12.0)

请注意,我以 shell 形式运行 zsh。

答案1

感谢@IngoKarkat 和@romaini 的大力帮助,我找到了解决方案。以下是一些信息,供大家调试此问题:

# To figure out which shell Vim is executing:
:set shell
:set shellcmdflag
# The response of these 2 concatenated are what will be executed by Vim

现在,一旦你知道它在运行什么,退出 Vim 并在你的本地 shell 中执行它来查看结果是什么(在我的情况下是“zsh -c”):

# zsh -c 'echo $PATH'

如果这是错误的,那么可能是您的.zshrc、、、或其他许多文件中的一个文件.profile/etc/profile了问题。/etc/zsh/zshrc/etc/zshrc

相关内容