我尝试了以下内容:
(setenv "PATH" (concat (getenv "PATH") ":~/mybin"))
(setq exec-path (append exec-path '(":~/mybin")))
但那从未奏效。我试过M-!并且在使用二进制名称进行M-x编译时,也会输入一个二进制名称并给出“未知命令”。 M-x编译然后echo $ PATH给出了没有我的〜/ mybin文件夹的路径。 我在solaris上。我做错了什么?
答案 0 :(得分:4)
:
。 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之间共享环境变量很容易。
答案 1 :(得分:1)
emacs $PATH
不存在。 $PATH
是一个shell变量。 Emacs和shell有不同的名称空间。
但是 - 由于Emacs可能会通过getenv读取并设置$ PATH,所以setenv - 似乎没有办法查看访问它的库。
我更喜欢使用exec-path而不是。
这样做的例子:
(add-to-list 'exec-path "FULL_PATH_TO_BIN"))