Как получить переменные окружения из gvim - PullRequest
5 голосов
/ 19 мая 2009

Когда я запускаю gvim с терминала, я могу получить доступ ко всем переменным среды.

Но если я запускаю gvim из меню или из панели запуска "Запустить приложение", все переменные моего окружения не будут доступны.

Как я могу получить доступ к переменным окружения, определенным в моем bashrc, если gvim не запущен из терминала?

Эти переменные определены в ~ / .bashrc

Распространение: Ubuntu Intrepid

Примечание 1: для запуска «Запуск приложения» нажмите ALT +

1 Ответ

7 голосов
/ 20 мая 2009

Вы должны быть в состоянии прочитать все фактические переменные среды, например,

:!echo $PATH

Ваша проблема связана с личными переменными среды.

Почему вы пытаетесь читать переменные окружения в gvim? Там может быть лучший способ сделать вещи.

Область переменных среды
Когда вы входите в свой компьютер, bash получает файл .bash_profile.
Когда вы запускаете терминал, он получает файл .bashrc, поэтому ваши персональные переменные среды доступны в этом терминале и во всех подоболочках.

Если вы не экспортируете переменные из вашего .bashrc, эти переменные не будут доступны в общей среде, и они будут доступны только после того, как вы запустите терминал, если вы их экспортируете.

Поскольку вы запускаете gvim через панель запуска приложений, ничто не читает ваш файл .bashrc, чтобы создать эти переменные среды для вас.

Некоторые информация о переменных среды оболочки Bourne см. В разделе 9.1.2

Итак, хорошее место для размещения:

MYENVIRONMENTVARIABLE=new value of environment variable
export MYENVIRONMENTVARIABLE

находится в .bash_profile, и затем, если вы хотите внести какие-либо изменения в переменную, убедитесь, что вы экспортируете их снова (и если вы хотите, чтобы изменения были постоянными, отредактируйте .bash_profile).

Обратите внимание, что значение этой переменной среды будет доступно для любых новых оболочек, но существующие оболочки, вероятно, не будут перечитывать переменные среды.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...