$PATH в Vim не соответствует Терминалу

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

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

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

9
задан 22.10.2009, 09:01

7 ответов

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.

12
ответ дан 07.12.2019, 13:08
  • 1
    я думал бы, что также, но я добавил несколько вещей '/etc/paths.d /' которые обнаруживаются в Терминале, но не с MacVim. – donut 27.09.2009, 08:37
  • 2
    И на самом деле, существует больше в моем '/etc/paths' 'файл, чем, что находится в пути MacVim. – donut 27.09.2009, 08:47
  • 3
    @Donut: хорошо, это нечетно. На моей машине, если я добавляю что-то к /etc/paths.d, это обнаруживается в следующий раз, когда я загружаю MacVim. Какой формат Вы помещаете там? Это должен быть один объект на строку, я верю, с каталогом $PATH на каждой строке (например,/usr/texbin). – Telemachus 27.09.2009, 14:17

Эта статья Mac Dev Center может быть несколько полезной.

1
ответ дан 07.12.2019, 13:08

Я знаю больше о Unix, чем о макинтошах, таким образом, следующий совет может или не может работать. Попытайтесь поместить этот свой .vimrc файл:

! source ~/.bash_profile

Это могло бы добиться цели, но существует небольшой протест: .bash_profile только предназначен, чтобы быть полученным однажды. Это может содержать некоторые неидемпотентные команды (вещи, которые должны только выполниться однажды). Рассматриваемый вопрос:

$PATH += /blah/foo:/bar/etc

Чем больше, который называют, тем больше и более избыточным $PATH добирается. Однако, если бы это не такое грандиозное предприятие, рекомендация на Unix состояла бы в том, чтобы вставить одноразовую команду ~/.bashrc и выполненный source ~/.bashrc от Вашего .vimrc файл.

0
ответ дан 07.12.2019, 13:08

Это не получено от .bash_profile, но можно использовать это в .vimrc:

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

Вы должны иметь: или это не будет корректная переменная ПУТИ.

3
ответ дан 07.12.2019, 13:08
  • 1
    оболочки Unix я попробовал это также напрасно. – donut 27.09.2009, 13:10

Я не могу полагать, что не видел это прежде. Хорошо, я могу верить этому. Так или иначе MacVim идет с опцией, которая решает это. Под Предпочтениями просто проверяют "Процессы Vim запуска в оболочку входа в систему". Вот именно это работает. Притягательный. Глупый я.

Ой

Я случайно записал этот ответ, не поняв, что Telemachus уже дал мне корректный ответ. Отмеченный его как ответ.

2
ответ дан 07.12.2019, 13:08

У меня не было проблемы при добавлении файла к paths.d каталогу. Я добавил файл, названный mysql, содержание которого было:

/usr/local/mysql/bin [Возврат]

Затем я поместил этот файл в соответствии с paths.d каталогом и изменил его владение на root:wheel. Теперь mysql каталог автоматически добавляется к моей переменной $PATH.

Я не занимался расследованиями полностью, но возможно (a) включая [ВОЗВРАТ] в конце строки и/или (b) устанавливая принадлежность файла корню, могло бы быть необходимым.

1
ответ дан 07.12.2019, 13:08

BTW, "Процессы Vim запуска в предпочтении" оболочки входа в систему больше не доступны в MacVim (по крайней мере, не v7.3). Я вижу, что запускающийся MacVim от Средства поиска получает неправильный путь, но запуск его от оболочки (как "mvim") получает корректный путь.

7
ответ дан 07.12.2019, 13:08

Теги

Похожие вопросы