Macos $PATH变量从查找器打开时未在gvim/MacVim中正确设置
我使用的是MacVim(基本上是mac的gvim) 如果我从命令行打开macvim,那么我的Macos $PATH变量从查找器打开时未在gvim/MacVim中正确设置,macos,vim,command-line,path,macvim,Macos,Vim,Command Line,Path,Macvim,我使用的是MacVim(基本上是mac的gvim) 如果我从命令行打开macvim,那么我的$PATH变量将被正确设置 如果我使用finder通过点击打开macvim,则将无法正确设置$PATH变量 有人能给我一些见解吗 注意:我知道我的路径至少有一部分是在~/.bashrc中设置的,但我不确定其余部分是在哪里设置的 示例: 如果我从终端打开macvim: % gvim basic.tex 然后在MacVim我会说: :!echo $PATH /opt/local/bin:/opt/loc
$PATH
变量将被正确设置
如果我使用finder通过点击打开macvim,则将无法正确设置$PATH
变量
有人能给我一些见解吗
注意:我知道我的路径至少有一部分是在~/.bashrc
中设置的,但我不确定其余部分是在哪里设置的
示例: 如果我从终端打开macvim:
% gvim basic.tex
然后在MacVim我会说:
:!echo $PATH
/opt/local/bin:/opt/local/sbin:/sw/bin:/sw/sbin:/Applications/MacVim.app/Contents/M
acOS:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/texbin:/usr/X11R6/bin
这是正确的道路
当我用鼠标打开文件时(在finder中) 我走的时候:
:!echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin
它给了我一条小路。为什么? 设置环境变量的位置 在Mac上,用于GUI应用程序(那些通过loginwindow启动的应用程序 查找器等)是
~/.MacOSX/environment.plist
或者,在MacVim中,您可以选择在登录shell中启动vim进程(查看首选项)
有关更多信息,请参见。路径的差异可能与登录shell(登录)和非登录shell(打开控制台)之间的差异有关 从bash手册页: 当bash作为交互式登录shell调用时。。。它查找~/.bash\u配置文件 启动非登录shell的交互式shell时,bash从/etc/bash.bashrc和~/.bashrc读取并执行命令 为了解决这个问题,我将以下代码添加到我的
~/.bash_配置文件中
,告诉它在存在~/.bashrc
的情况下获取源代码:
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
我也有同样的问题,但它只是在像这样将默认shell设置为zsh之后出现的
export SHELL=/bin/zsh
似乎OS X zsh设置中有一个bug。简单的解决方法是将/etc/zshenv
合并到/etc/zprofile
中。在我的例子中,我没有一个/etc/zprofile
,所以只需移动文件即可:
ln -s ~/.zshrc ~/.zprofile
sudo mv/etc/zshenv/etc/zprofile
这将更详细地描述解决方案。对我来说,只需创建一个从.zprofile到.zshrc的新符号链接,就可以实现以下目的:
ln -s ~/.zshrc ~/.zprofile
当它是一个交互式shell时,这不会导致bashrc被加载两次吗?我不相信它会被加载两次。现在我想起来了,这不是解决你问题的办法。。。这就解决了远程登录(例如通过ssh)而无法加载
~/.bashrc
的问题。您没有远程登录。但是,当您正常打开终端时,它将加载您的.bash\u配置文件
,然后加载您的.bashrc
(可能顺序相反)。你所做的将使它成功.bash\u profile
将加载您的.bashrc
,然后它将加载您的.bashrc
。可能这并不重要,但如果您想解决这个问题,您可以在.BASHRC
中加载var$BASHRC\u,并将所有内容包含在if(非($BASHRC\u加载))
中。(抱歉语法错误)对于我现在使用的系统(Ubuntu 10.4),当我打开一个终端时,它只加载我的.bashrc
。如果我ssh到同一个框中,它将加载我的.bash\u配置文件
。我相信这就是bash通常的工作方式。作为旁注,对于每个用户,Ubuntu都会设置一个.profile
文件(如果.bash\u profile
不存在,则会加载该文件),如果存在.bashrc
,就像我上面提到的一样。这是官方MacVim github wiki上提到的解决方案:(在“针对zsh用户”标题下)我认为关键可能是从/etc/zshenv
中获取eval/usr/libexec/path\u helper-s命令。我发现答案中的“合并”一词令人困惑。不过,非常有帮助,谢谢。向上投票!你可以使用你自己的~/.zprofile
而不是使用系统/etc/zprofile
在我的情况下,我只是将我所有的导出路径从~/.zshrc移到了~/.zprofile,文档说要复制它们并进行排版,但没有必要。唯一对我有效的是ln-s~/.zshrc~/.zprofile
启动vim的选项登录外壳中的进程在MacVim 7.3中不再可用。有关2021年有效的答案,请参阅此方法。这对我很有效。这是一个最简单的解决办法。只需将.zsrc
更改为.zshrc
,或者只需在.zprofile而不是.zshrc中定义路径。