如何将我的自定义emacs主题视为“安全主题”?

51

我正在使用 Emacs 24 和 solarized 颜色主题。

当 Emacs 启动时,它会提示我 "加载主题可能会运行 Lisp 代码,确定要加载吗?"。

如果我回答 "是",它会继续问 "将来的会话中是否将此主题视为安全?"。

如果我回答 "是",主题就会被加载,并且...

(custom-set-variables
    (custome-safe-themes (quote ("..." default))))

这将自动添加到~/.emacs。

然而,每次我打开Emacs时都会出现这些问题!

如何正确关闭它们?


“...” 真的是写入您的 .emacs 的字符串吗? - pmr
@pmr 不,太长了,输入起来很麻烦。这是一串随机的字母数字组合,我猜测它是某种哈希结果。 - Daniel Duan
@DaNmarner 如果您第二次回答这个问题,字符串是否不同? - pmr
@pmr 刚试了一下...是的,那就解释了。但为什么呢?我没有改变主题。 - Daniel Duan
你可能遇到了一个错误。尝试使用其他主题,然后你可以将它带到邮件列表中讨论。无论如何,如果你是Emacs的新手,建议从emacs23开始。我在我的github上有一个配置,包括zenburn/solarized。https://github.com/bo0ts/.emacs - pmr
@pmr 在我的Mac的Aquamacs nightly上没有出现这个问题。所以可能这是一个Linux特有的问题。我暂时会继续使用Emacs 23。非常感谢! - Daniel Duan
4个回答

96
如果您使用M-x customize-themes来设置和保存您喜欢的主题,那么一切都应该正常工作。
如果您在.emacs中添加了启用主题的代码,但是该代码出现在custom-set-variables命令之前,则可能会出现问题。
您可以通过使用load-theme函数的NO-CONFIRM标志来强制Emacs加载主题而不提示您确认其安全性:
(load-theme 'solarized-light t)

1
自定义主题不存在,而(load-theme 'color-theme-solarized-light t)则显示参数数量错误。Emacs24 - Prof. Falken
4
恐怕您没有 Emacs 24 版本。 - sanityinc
2
当我准备嘲笑你的时候,突然发现好像是我自己犯了错...是Emacs23。还好我先检查了一下。;-) - Prof. Falken
1
LOL,很高兴你解决了它! :-) - sanityinc
实际上,我现在使用的是GNU Emacs 24.1.1,但它显示:符号作为变量的值为空:n。 - Prof. Falken
显示剩余2条评论

5
相同的问题在这里也出现了。我解决了这个问题,将custom-set-variables代码放在加载主题之前。
(custom-set-variables
 '(custom-safe-themes (quote ("9527feeeec43970b1d725bdc04e97eb2b03b15be982ac50089ad223d3c6f2920" default))))
(custom-set-faces
)

然后我加载我的主题:

(defun use-default-theme()
  (load-theme 'default-black))

(use-default-theme)

0

我曾经遇到了同样的问题,只需要在.emacs文件中删除几行代码,整个问题就解决了。


0
在回答这些问题并启动emacs后,删除或注释包含load-theme语句的行。在我的情况下,它们是:
(use-package doom-themes :ensure t :config (load-theme 'doom-acario-dark))
如果你不这样做,emacs会再次询问你是否要加载主题(这已经是一个安全的主题了)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接