为什么我的vim的命令行路径从我的shell路径有什么不同?(Why does my vim com

2019-08-02 19:02发布

例如,

$ 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)

Answer 1:

这是一个已知的问题苹果在OS X 10.5 Leopard中引入。

如果你正在使用bash或岩组,并使用非交互shell,你都会受到影响。

运行sudo chmod ugo-x /usr/libexec/path_helper会治好你的,但你应该看看文章,看看为什么。

从这个SO答案



Answer 2:

上有SO和SU许多类似的问题。

你的shell执行取决于它的参数给出在启动时不同* RC文件。 因此,你需要设置的Vim,使其launchs用正确的参数你的shell。

下面在bash帮助,我几乎可以肯定有一个类似的标志的zsh。

set shell=bash\ -i

$ man zsh为右旗和正确的执行顺序。



Answer 3:

我无法用zsh来解决这个问题,并最终使用bash我的vim的外壳。

这是我做的:

  1. 修改了我的.zshrc使用bash工作
  2. ln -s .zshrc .bashrc
  3. 添加set shell=bash我的.vimrc文件

现在我的VIM命令行PATH等于我的zsh shell路径。



Answer 4:

我不使用Mac或zsh的(我在Linux上),但是我遇到了这个问题,当我从MATE菜单运行GVIM。

我解决了它加入这个对我的.vimrc:

if $PATH !~ "\.rbenv"
    let $PATH="/home/username/.rbenv/shims:/home/username/.rbenv/bin:" . $PATH
endif

这避免了设置,如果你从一个终端运行VIM,否则rbenv路径将包括两次。

我试图通过设置一个终端来运行应用程序,但是这并没有帮助。



文章来源: Why does my vim command-line path differ from my shell PATH?