Есть ли способ перезагрузить переменные окружения в Emacs?

8

Когда emacs запускается, он наследует переменные среды, которые установлены в то время, либо в запускающем приложении (Linux), либо в центральном хранилище (реестр Windows).

В Windows переменные среды могут быть установлены глобально. Как я могу предложить emacs обновить список переменных окружения?

Мне также интересны способы обновления переменных в Linux (те, которые были изменены в оболочке, которая запустила emacs), хотя это кажется намного сложнее, так как нет центрального хранилища переменных среды. Может быть, играя с emacsclient?

Norswap
источник
Не могли бы вы немного объяснить, какую проблему вы пытаетесь решить? Зачем вам нужно общаться через такую ​​среду?
DJV
Простой случай - установка новой программы командной строки. В Windows это может оказаться, например, в «C: \ Program Files \ My Program \». Чтобы использовать эту программу в командной строке, мне нужно добавить этот путь в переменную среды PATH. Я использую оболочку emacs, и поэтому мне нужно перезапустить emacs (или добавить переменную в среду вручную в emacs), чтобы использовать новую программу.
Norswap

Ответы:

2

Возможно, вы могли бы создать внешний сценарий, который собирает имена и значения переменных среды, а затем отправляет эти пары имя-значение в работающий emacs через emacsclient, поэтому emacs может установить свою собственную среду в соответствии с полученными значениями с помощью setenv.

Том
источник