我尝试了以下方法:
(setenv "PATH" (concat (getenv "PATH") ":~/mybin"))
(setq exec-path (append exec-path '(":~/mybin")))
Run Code Online (Sandbox Code Playgroud)
但这从来没有奏效。我试过M-!并键入其中一个二进制名称,并且在使用二进制名称相同结果进行 Mx 编译时也给出了“未知命令”。Mx compile 然后 echo $PATH 给出了没有我的 ~/mybin 文件夹的路径。我在solaris上。我究竟做错了什么?
:exec-path 不需要。exec-path是目录路径列表。你应该使用绝对路径。您应该按如下方式修复。
(setenv "PATH" (concat (getenv "PATH") ":" (expand-file-name "~/mybin")))
(setq exec-path (append exec-path (list (expand-file-name "~/mybin")))
Run Code Online (Sandbox Code Playgroud)
我建议您使用exec-path-from-shell将 PATH 设置为 Emacs。它提供了从您的登录 shell 获取环境变量并将它们设置为 Emacs 的函数。在 Emacs 和 shell 之间共享环境变量很容易。