$PATH variable not properly set in gvim/MacVim when it is opened from the finder

风格不统一 提交于 2019-11-28 06:55:04

I had this same issue but it only appeared after setting my default shell to zsh like so

export SHELL=/bin/zsh

It seems that there is a bug in the OS X zsh setup. The work around in brief is to merge /etc/zshenv into /etc/zprofile. In my case I didn't have a /etc/zprofile so just moving over the file did the trick:

sudo mv /etc/zshenv /etc/zprofile

This post describes the solution in more detail.

adampasz

For me, simply creating a new symbolic link from .zprofile to .zshrc did the trick:

ln -s ~/.zshrc ~/.zprofile

The place to set environment variables on the Mac for GUI applications (those started via loginwindow, the Finder, etc.) is ~/.MacOSX/environment.plist

Alternately in MacVim you can choose to launch vim processes in a login-shell (look in the preferences).

For more info see this post.

The difference in the PATHs probably has something to do with the difference between a login shell (logging in) and a non-login shell (bringing up a console).

From the bash man page:

When bash is invoked as an interactive login shell ... it looks for ~/.bash_profile...

When an interactive shell that is not a login shell is started, bash reads and executes commands from /etc/bash.bashrc and ~/.bashrc...

What I did to get around this issue was to add the following code to my ~/.bash_profile, telling it to source my ~/.bashrc if it exists:

if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!