Какой установочный файл читает eshell (elisp shell) при запуске? Как eshell устанавливает свой путь?
с emacs / eshell "echo $PATH" показывает разные пути, чем у переменной среды $PATH.
и я также проверил, что эшелл не читает .bashrc or .профиль, и я думаю, что это причина, по которой путь отличается.
- какой установочный файл читает eshell при запуске?
- как eshell устанавливает свой путь?
- как сделать путь eshell таким же, как переменная окружения Путь?
добавил
Как указал Жером Радикс, путь зависит от того, как я начну Aquamcs.
- когда я нажимаю кнопку, чтобы запустить Aquamacs, он имеет другой путь.
- когда я запускаю "aquamacs" из командной строки, он имеет тот же путь.
3 ответов
- какой установочный файл читает eshell при запуске?
при запуске файл установки не выполняется. Для определения начальной истории и последних каталогов читаются следующие файлы:
~/.eshell/history
~/.eshell/lastdir
- как eshell устанавливает свой путь?
в esh-util.Эль, строка 240 :
(defvar eshell-path-env (getenv "PATH")
"Content of $PATH.
It might be different from \(getenv \"PATH\"\), when
`default-directory' points to a remote host.")
- как сделать путь eshell таким же, как переменная окружения Путь?
это то же самое, что и переменная PATH процесса emacs. Я предполагаю, что вы делаете путь echo $на оболочке вне emacs для сравнения. Если путь отличается между emacs и вашей оболочкой вне emacs, это потому, что emacs и ваша оболочка не выполняют одни и те же сценарии запуска.
поскольку вы находитесь на Mac, важно знать, что приложения GUI (такие как Aquamacs, когда они не открыты с терминала) получают свою среду от ~/.MacOSX/environment.plist
, Так что вы можете сделать там изменения. См., в частности эта статья Брайана D Foy для способа автоматического создания этого файла.
по определению echo $PATH
показывает значение PATH
переменные среды. Оболочка работает внутри Emacs наследует PATH
переменная среды из запущенного процесса Emacs.
Оболочка работает в eshell
не является отдельной программой, такой как bash, она встроена в Emacs. Его настройка осуществляется через Emacs Lisp. В частности, при запуске eshell он запускает функции в eshell-mode-hook
и загружает файлы Lisp в eshell-modules-list
.
похоже, что вы не устанавливаете PATH
в правильном файле конфигурации. Правильным местом будет то, что сделано в начале вашего сеанса. Это зависит от операционной системы; если у вас есть проблемы с этим, спросите о Супер Пользователя, не забудьте сказать, что ваша операционная система, и, если применимо, укажите свою оболочку входа, среду рабочего стола и т. д.