2

我尝试了以下方法:

(setenv "PATH" (concat (getenv "PATH") ":~/mybin"))
(setq exec-path (append exec-path '(":~/mybin")))

但这从来没有奏效。我试过M-!并键入其中一个二进制名称,并且在使用二进制名称相同的结果进行 Mx 编译时也会给出“未知命令”。Mx compile then echo $PATH 给出了没有我的 ~/mybin 文件夹的路径。我在solaris上。我究竟做错了什么?

4

2 回答 2

5

:exec-path 不需要。exec-path是目录路径列表。你应该使用绝对路径。你应该修复如下。

(setenv "PATH" (concat (getenv "PATH") ":" (expand-file-name "~/mybin")))
(setq exec-path (append exec-path (list (expand-file-name "~/mybin")))

我建议您使用exec-path-from-shell将 PATH 设置为 Emacs。它提供了从你的登录 shell 获取环境变量并将它们设置为 Emacs 的函数。在 Emacs 和 shell 之间共享环境变量很容易。

于 2013-08-23T00:56:30.403 回答
1

emacs$PATH不存在。$PATH是一个外壳变量。Emacs 和 shell 有不同的命名空间。

然而——因为 Emacs 可能通过 getenv、setenv 读取和设置 $PATH——似乎没有办法查看访问它的库。

我更喜欢使用 exec-path 。

例如这样做:

(add-to-list 'exec-path "FULL_PATH_TO_BIN"))
于 2013-08-23T06:56:27.737 回答