2

Я использую GNU Emacs в Windows много лет, и чтобы заставить его работать, мне всегда приходилось определять несколько переменных среды. Все это время я определял их как системные переменные:

EMACS_DIR , EMACSDATA , EMACSDOC , EMACSLOADPATH , EMACSLOCKDIR и EMACSPATH .

Я недавно обновил свой Emacs с порта "NTEmacs" 24.3 до официального порта GNU 26.1, и я обнаружил, что значения, которые я использовал для них, были неправильными. Кроме того, текущая версия может автоматически определять все, кроме переменной EMACSPATH.

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

Но я обнаружил, что после выхода из системы / входа все удаленные переменные возвращаются со старыми значениями. Точнее говоря, их нет в панели управления, но если я открою командную строку и наберу set , они там и предотвратят работу Emacs. (Другие переменные окружения, которые я удалил, также возвращаются, но они не мешают ни одному из моих приложений, поэтому мне все равно).

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

Ясно, что эти переменные среды где-то кэшируются, но я понятия не имею, где искать, чтобы полностью удалить их.

Я искал реестр с помощью regedit и не смог найти никаких следов этих старых переменных. Есть ли еще место, где я должен искать? Это явно ошибка Windows, но я не хочу мириться с этим, пока Microsoft исправит ошибку.

Конечно, я могу получить значения, которые вычисляет Emacs, и заново создать системные переменные среды с этими значениями, но я бы предпочел этого избегать, если нет другой доступной опции.

0