$PATH в Vim не соответствует Terminal

$PATH в Vim не соответствует Terminal

Я использую MacVim, и когда я не запускаю его из Терминала ( mvim), его $PATH не включает то, что я установил в моем .bash_profile. Кажется, у него есть только значения по умолчанию, /usr/bin:/bin:/usr/sbin:/sbin.

Я использую OS X 10.5.8. Даже если бы я мог установить его вручную в моем .vimrc, это было бы нормально, хотя я бы предпочел, чтобы он тянул из того же места, что и Terminal. Я пытался следовать тому, что предлагал один сайт, добавляя, let $PATH += /blah/foo:/bar/etcно безрезультатно.

Редактировать/Решение:См. мой ответ ниже. В MacVim есть возможность исправить это.

решение1

MacVimпохоже, что $PATH получается таким образом, что игнорируются пользовательские dotfiles обычного пользователя.

Я не могу сказатьпочемуони предпочитают делать это таким образом, но это, кажется, правда. В настройках (на вкладке «Дополнительно») можно выбрать «Запускать процессы Vim в оболочке входа», но это улучшает только немного $PATHдля меня.

Насколько я могу судить, MacVim использует /usr/libexec/path_helper- который в свою очередь использует элементы, найденные (1) в файле /etc/pathsи (2) все, что дополнительно найдено в /etc/paths.d/каталоге. Любые изменения, сделанные в домашнем каталоге пользователя (через .profileили тому подобное), игнорируются.

Вкратце, вы получаете настройки OSX по умолчанию, а также любые приложения, которые добавляют себя в /etc/paths.d. (Например, MacTex делает это в моей системе.) Поэтому, если вы хотите изменить свой путь MacVim, одним из способов будет добавление файла с элементами в /etc/paths.d. (Я бы не стал редактировать напрямую, /etc/pathsтак как в этом случае вы рискуете, что изменения будут отменены обновлениями системы.)

Спасибо, что сообщили мне об этом. Я собираюсь отправить сообщение об ошибке в список желаний в MacVim.

решение2

Кстати, параметр "Запустить процессы Vim в оболочке входа" больше недоступен в MacVim (по крайней мере, в версии 7.3). Я вижу, что запуск MacVim из Finder приводит к неправильному пути, но запуск из оболочки (как "mvim") приводит к правильному пути.

решение3

Он не взят из .bash_profile, но вы можете использовать его в своем .vimrc:

let $PATH=$PATH . ':/blah/foo'

Необходимо указать :, иначе это будет неправильная переменная PATH.

решение4

MacVim будет использовать ~/.zprofileи /etc/profile, поэтому вы можете поместить PATHтуда свои настройки.

Видетьhttps://github.com/b4winckler/macvim/wiki/Troubleshooting#for-zsh-usersиэтот вопрос на Stack Overflow.

(Протестировано с MacVim версии 7.3 (65)).

Связанный контент