Emacs OS X:劣质shell $ PATH继承

时间:2015-07-13 16:02:00

标签: macos emacs

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 $SHELLusr/local/bin/zshecho $PATH/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin

但是,M-x ! echo $SHELL/bin/zshM-x ! echo $PATH/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin

为什么会这样?如何将其更改为与终端$ PATH相同?

1 个答案:

答案 0 :(得分:0)

我不确定具体细节,但我认为你想要的是在PATH中设置.emacsexec-path用于搜索 for 你的shell可执行文件,而不是 by 你的shell可执行文件。

基本上,要将所需目录放在$PATH的前面,您需要以下内容:

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

有些指南建议您在(add-to-list 'exec-path my-dir)中执行此操作.emacs,我认为只是为了保持Emacs及其劣质炮弹的搜索路径同步。

但是,嘿,已经差不多一年了,希望你现在已经找到了解决方法。