我在网上看到了一些示例,其中人们使用以下命令将路径添加到Emacs中的默认路径:
(add-to-list 'exec-path "/usr/local/bin/")
我是Elisp的新手,我想我了解上述声明的功能,但是我有几个问题:
Emacs 以什么顺序搜索执行路径?例如,它是否完全考虑
$PATH
(env。variable)的值(如果是,则在它之前或之后exec-path
?)如何设置多个此类路径?我可以继续串联它们吗?例如
(add-to-list 'exec-path "PATH1", "PATH2")
还是我应该做:
(add-to-list 'exec-path "PATH1:PATH2:PATH3")
我还在GitHub上找到了这个有趣的包:exec-path-from-shell。为什么需要为此包装?
动机
有没有发现命令在您的Shell中有效,但在Emacs中无效?
这在OS X上经常发生,在OS X上,从GUI启动的Emacs实例继承了一组默认的环境变量。
这个库的工作原理是通过从用户的shell复制重要的环境变量来解决此问题的:它通过要求shell打印出感兴趣的变量,然后将其复制到Emacs环境中来工作。
C-h v exec-path
,请使用手册(Emacs和Elisp)。在手册中,i exec-path
可为您提供有用的解释。首先询问Emacs-您不会后悔的。
(describe-function 'add-to-list)
(C-h f
)将为您提供该add-to-list
功能的文档以及到源的链接。还有(describe-variable 'exec-path)
(C-h v
)。这并不是要成为RTFM评论-这些文档并不能回答您列出的所有问题,只是有用的东西。