标题已经说明了一切。我曾经使用(setenv "PATH" "whatever:$PATH" t)
来从Emacs中调用东西(实际上是一个东西——从AUCTeX中调用ConTeXt)。不久前,我学到了exec-path
。我应该使用它吗?
setenv
实际上设置了环境(并影响了从该emacs执行的程序所看到的环境),但exec-path
告诉emacs在哪里查找可执行文件,但从这个emacs运行的程序不会看到它们的PATH
已更改。setenv
更改环境不会更改当前Emacs搜索可执行文件的方式,因为它使用exec-path
。要实现这一点并使由此Emacs执行的子进程具有更改的$PATH
,您必须同时设置exec-path
和$PATH
。