将环境变量的值分配给列表

assign value from environment variable to alist

我运行 在办公室和家里都使用Emacs,而在办公室它是在防火墙后面。

一个环境变量 http_proxy 只在我办公室的电脑上定义,我想让我的 Emacs 检查环境变量 http_proxy 是否不为空,如果是这样就使用它的值来设置url_proxy_service。所以我尝试了这样的事情

 (setq proxy (getenv "http_proxy"))
 (setq url-proxy-services
    '(("http" . proxy)
      ("https" . proxy)))

我可以看到 proxy 获取了环境变量 http_proxy 中的值,但是 url-proxy-services 变成了 (("http" . proxy) ("https" . proxy))

所以在我看来 proxy 没有被取消引用,而是用作字符串文字,我该怎么办?谢谢。

您可以在引用列表时使用 Backquote 来评估 proxy:

(setq proxy (getenv "http_proxy"))
(setq url-proxy-services
      `(("http"  . ,proxy)
        ("https" . ,proxy)))