I am using MacVim (basically gvim for the mac).
If I open macvim from the command line then my $PATH
variable will be properly set.
If I open macvim via point and click with the finder, the $PATH
variable will NOT be properly set.
Can anyone give me some insight?
Note: I know at least part of my path is set in ~/.bashrc
, but I am not sure where the rest of it is set.
Examples:
If I open macvim from the terminal:
% gvim basic.tex
And then in MacVim I go:
:!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
This is the right path.
When I open the file with the mouse (in finder)
When I go:
:!echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin
It gives me a little path. Why?
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:
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:For me, simply creating a new symbolic link from .zprofile to .zshrc did the trick:
I had this same issue but it only appeared after setting my default shell to zsh like so
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.