(G) VIM использует $ PATH, отличный от моей системы

8

Поскольку Ubuntu не предоставляет современных пакетов для TeXLive, я установил его вручную. Однако некоторые программы нуждаются в TeXLive в качестве зависимости. Итак, я установил пакет TeXLive из репозиториев Ubuntu поверх этой версии 2009 года. Затем я изменил свой $ PATH на версию 2011 года, установленную вручную, поэтому программы по-прежнему всегда указывают и используют самую последнюю версию TeXLive. До сих пор это работало нормально.

Но здесь есть одно мгновение: когда я переключился на VIM для редактирования моих файлов LaTeX, я заметил после слишком большой головной боли, что VIM «видит» только TeXLive2009! Смотрите этот скриншот, слева VIM, справа терминал:

LaTeX версия в VIM

Затем я проверил, что использует $ PATH VIM, и, как выяснилось, он использует другой, который НЕ указывает на TeXLive 2011. Смотрите этот скриншот:

Путь в VIM и Терминал

VIM:

:! echo $PATH
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

Терминал:

echo $PATH
/usr/local/texlive/2011/bin/x86_64-linux:/usr/local/texlive/2011/bin/x86_64-linux:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

У вас есть идеи, как это исправить, чтобы мои плагины LaTeX могли использовать TeXLive 2011, возможно, заставив VIM использовать тот же $ PATH? Любая помощь будет с благодарностью!

Инго
источник
4
Где вы изменили свой путь?
энзотиб

Ответы:

5

Похоже, вы изменили $PATHпеременную в одном из ваших файлов конфигурации оболочки, но вы запускаете VIM с помощью значка или пункта меню рабочего стола. То, что вы устанавливаете в файлах конфигурации оболочки (например, ~/.bashrcили /etc/profile), влияет только на приложения, запущенные из оболочки .

Как правило, есть два возможных подхода к этой проблеме:

  • local : изменить способ запуска VIM.

[редактировать]

  • для каждого пользователя : изменить среду вашего пользователя в ~/.profile.

[/редактировать]

  • global : изменение глобальной среды.

Локальное решение является наиболее безопасным (как это влияет только одна программа), но так как вы уже испортили систему путем установки двух параллельных версий программного пакета, я не уверен , если это будет пугать вас. В любом случае, вы можете сделать это, изменив .desktopзапись для VIM в вашей среде рабочего стола и изменив соответствующую команду с чего-то вроде gnome-terminal -c vimна PATH=(yourPathGoesHere) gnome-terminal -c vim.

Глобальный метод заключается в изменении PATHпеременной в файле /etc/env.d/. Этого должно быть достаточно для создания файла /etc/env.d/99-my_path_mod, содержащего PATH=(yourPathGoesHere):$PATH. Вам нужно будет перезагрузиться, чтобы это вступило в силу (ну, перезагрузки можно избежать, переключая уровень инициализации взад и вперед, но так гораздо проще).

[редактировать]

Индивидуальное решение может быть лучшим, и, как я вижу его сейчас, его можно назвать «правильным способом». Как указывает Жиль (ниже), в этом ~/.profileфайле должны быть установлены переменные среды для всех ваших сеансов входа в систему.

rozcietrzewiacz
источник
Спасибо, следуя вашему решению, проще всего просто вызвать gvim из терминала. Это прекрасно работает!
Инго
Этот ответ вводит в заблуждение и частично неверен. Нет необходимости что-либо менять на системном уровне; вместо этого, @Ingo, простое решение состоит в том, чтобы устанавливать переменные окружения в,~/.profile а не в ~/.bashrc. Делать вещи правильно не сложно и предотвратит будущие проблемы .
Жиль "ТАК - перестать быть злым"
@ Жиль Признаюсь, я не осознавал главной роли ~/.profile, поэтому мой ответ может вводить в заблуждение. Но в какой части это неверно?
rozcietrzewiacz
Хорошо, технически я думаю, что единственная неправильная вещь - это «обычно два возможных подхода»: есть третий подход, который является распространенным и предпочтительным. Представление /etc/profileв виде файла конфигурации оболочки технически верно, но вводит в заблуждение (это файл конфигурации, написанный в оболочке, а не файл конфигурации оболочки). Не упоминание ~/.profile- главное упущение, которое само по себе делает ваш ответ «бесполезным».
Жиль "ТАК - перестань быть злым"
Когда я открываю свою /etc/profile, это то, что я вижу на самом верху . Итак, по крайней мере, в моей системе (Gentoo) этот файл можно назвать «конфигурационным файлом оболочки».
rozcietrzewiacz
2

Где вы изменили своего пользователя PATH? Обычно я устанавливаю это там ~/.profile, где он должен быть выбран вашим менеджером сеансов X (т.е. при следующем входе в систему X), а также применяется ко всем приложениям в вашем сеансе X (например, к панели / рабочему столу, с которого вы запускаете gvim) ,

patrikf
источник