В моей оболочке я сделал: export BLA=foo
, а затем я делаю echo $BLA
, и я вижу foo
, как и ожидалось. Затем я загружаю emacs и делаю M-!
для команды оболочки и делаю echo $BLA
, и он настроен на что-то еще, bar
. Итак, я запускаю M-x setenv
и даю его BLA
и foo
в подсказках, но когда я делаю эхо, я все еще вижу bar
. Почему это было бы и как я могу его изменить? Я пытаюсь сделать это для некоторых переменных среды, под которыми я хочу запустить M-x compile
Как реально изменить/установить переменные среды из emacs
ответ
setenv
изменит окружающую среду для процессов запуска emacs после вы установили значение. Запуск дочерних процессов не будет затронут.
Таким образом, сделав (setenv "FOO" "bar")
, а затем M-x shell
(пока у вас еще нет оболочки), вы получите оболочку с переменной окружения «FOO», установленной в «bar».
Ваша оболочка, в которой вы запустили Emacs, передает копию своей среды своему дочернему процессу (Emacs), вот как значение передается из оболочки в Emacs. Любое изменение, которое Emacs выполняет с его унаследованной средой, повлияет только на среду процесса Emacs. Окружение среды Emacs не может влиять на среду оболочки.
Если вам нужно передать информацию обратно оболочки, вы должны использовать различные методы, такие как временные файлы, именованные каналы, сокеты, ...
Если вы просто хотите, чтобы проверить окружение самого Emacs, используйте M-x
getenv
посмотреть переменные или использовать M-!
echo $BLA
. Если это также показывает sth else, тогда у вас, вероятно, есть специальный BLA
, который автоматически устанавливается в sth после каждой команды или который вообще не доступен для записи, как RANDOM
или аналогичный.
- 1. Переменные среды среды, связанные с оболочкой Emacs
- 2. Могут ли .emacs читать переменные среды?
- 3. Как установить переменные среды в локальную область буфера в emacs
- 4. Экспортированные переменные среды vs Переменные среды
- 5. Как хранить переменные среды
- 6. изменить переменные среды из java
- 7. Переменные среды Docker из файла
- 8. Извлечь переменные среды из popen
- 9. Переменные среды
- 10. Как установить переменные среды bash из сценария?
- 11. Как установить переменные среды из Java?
- 12. Как установить переменные среды Gradle?
- 13. Настройка среды emacs в окнах?
- 14. переменные среды отладки android
- 15. Configafe Config Переменные среды
- 16. Как настроить переменные среды vsvars32?
- 17. Как оценить переменные среды Кубернетес
- 18. Переменные среды Ruby?
- 19. MSBuild требуемые переменные среды
- 20. Докер-Compose переменные среды
- 21. Переменные среды и PHP
- 22. Переменные среды в Makefile
- 23. Замените переменные среды .NET
- 24. переменные среды загрузки из сценария оболочки
- 25. Автоматически создавать переменные из параметров среды
- 26. spring - читать переменные среды из файла application.properties
- 27. cmake: Установить переменные среды из сценария
- 28. SETX устанавливает переменные среды из файла
- 29. Установить переменные среды из Delphi (Win32)
- 30. Получить переменные из среды в go?
'C-u M-x shell' запросит имя буфера, что приведет к легкому запуску окна оболочки 2-го, 3-го и т. Д. Попробуйте оболочку до и после setenv и посмотрите результаты! – assem