Переменная $ PATH неправильно установлена ​​в gvim / MacVim при ее открытии из поиска - PullRequest
17 голосов
/ 27 июля 2010

Я использую MacVim (в основном gvim для Mac).

Если я открою macvim из командной строки, тогда моя переменная $PATH будет установлена ​​правильно.

Если я открою 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 

Это правильный путь.


Когда я открываю файл мышкой (в видоискателе)

Когда я иду:

:!echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin  

Это дает мне небольшой путь. Зачем?

Ответы [ 4 ]

16 голосов
/ 12 сентября 2011

У меня была такая же проблема, но она появилась только после установки моей оболочки по умолчанию на zsh, вот так

export SHELL=/bin/zsh

Кажется, в настройке OS X zsh есть ошибка. Обходное вкратце - объединить /etc/zshenv в /etc/zprofile. В моем случае у меня не было /etc/zprofile, поэтому просто перемещаясь по файлу, добились цели:

sudo mv /etc/zshenv /etc/zprofile

Эта запись описывает решение более подробно.

9 голосов
/ 03 июля 2014

Для меня, просто создав новую символическую ссылку из .zprofile в .zshrc, добились цели:

ln -s ~/.zshrc ~/.zprofile
6 голосов
/ 27 июля 2010

Место для установки переменных среды на Mac для приложений с графическим интерфейсом (которые запускаются через loginwindow, Finder и т. Д.): ~/.MacOSX/environment.plist

Также в MacVim вы можете выбрать запуск процессов vim при входе в систему.-оболочка (посмотрите в настройках).

Подробнее см. в этом сообщении .

3 голосов
/ 27 июля 2010

Разница в PATH, вероятно, как-то связана с различием между оболочкой входа в систему (вход в систему) и оболочкой, не входящей в систему (вызов консоли).

со страницы руководства bash:

Когда bash вызывается как интерактивная оболочка входа в систему ... она ищет ~ / .bash_profile ...

Когда запускается интерактивная оболочка, которая не является оболочкой входа в систему, bash читает и выполняет команды из /etc/bash.bashrc и ~ / .bashrc ...

Что я сделал, чтобы обойти эту проблему, так это добавил следующий код в мой ~/.bash_profile, сказав, что он будет источником моего ~/.bashrc, если он существует:

if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...