2015-07-13 4 views
1

Emacs руководство говорит следующее: Both M-! and M-| use shell-file-name to specify the shell to use. This variable is initialized based on your SHELL environment variable when Emacs is started. If the file name does not specify a directory, the directories in the list exec-path are searched; this list is initialized based on the environment variable PATH when Emacs is started. Your .emacs file can override either or both of these default initializations.

shell-file-name установлен в /usr/local/bin/zsh в терминале, echo $SHELL является usr/local/bin/zsh и echo $PATH является /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin

Однако M-x ! echo $SHELL является /bin/zsh и M-x ! echo $PATH is /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin

Почему это так? Как изменить его, чтобы он оставался неизменным с терминалом $ PATH?

+0

Исправление: 'M-x! echo $ SHELL' является '/ usr/local/bin/zsh'. Кроме того, он выглядит как $ PATH, показанный 'M-x! echo $ PATH' - это '/ etc/paths'. То есть login shell $ PATH игнорируется. – user3156459

ответ

0

Я не уверен, специфики, но я думаю, что вы хотите, чтобы установить PATH в вашем .emacs, и что exec-path используется для поиска для исполняемого файла оболочки, не используется по исполняемого файла оболочки.

В основном поставить нужный каталог на передней $PATH, вы хотите что-то вроде:

(setenv "PATH" (concat my-dir ":" (getenv "PATH")))

Некоторых гиды предлагают вам также сделать (add-to-list 'exec-path my-dir) когда вы делаете это в .emacs, я думаю, просто держать поиск путей Emacs и его нижних оболочек в синхронизации.

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

+0

Я использую пакет [exec-path-from-shell] (https://github.com/purcell/exec-path-from-shell), который делает - я надеюсь: я не погрузился в его кодовую базу - что вы предлагаете. Все еще получите начальное поведение для 'M-x! echo $ PATH' - то есть путь не наследуется. В основном я отказался от использования терминала из emacs. В настоящее время мой термин «C-z». – user3156459

Смежные вопросы