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
为/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
为什么会这样?如何将其更改为与终端$ PATH相同?
答案 0 :(得分:0)
我不确定具体细节,但我认为你想要的是在PATH
中设置.emacs
,exec-path
用于搜索 for 你的shell可执行文件,而不是 by 你的shell可执行文件。
基本上,要将所需目录放在$PATH
的前面,您需要以下内容:
(setenv "PATH" (concat my-dir ":" (getenv "PATH")))
有些指南建议您在(add-to-list 'exec-path my-dir)
中执行此操作.emacs
,我认为只是为了保持Emacs及其劣质炮弹的搜索路径同步。
但是,嘿,已经差不多一年了,希望你现在已经找到了解决方法。