Emacs总是要求在启动时信任颜色主题


10

我的Emacs总是提示我是否应该信任所选的颜色主题。我总是回答yy信任并记住我的选择。我正在手动加载颜色主题:

(load-theme 'my-favourite-theme)

我想这是因为容易的自定义放置在颜色主题加载下方。有某种解决方法吗?还是我也应该将颜色主题加载委派给简单的自定义设置?


2
load-theme具有可选参数: (load-theme THEME &optional NO-CONFIRM NO-ENABLE)如果直接在init文件中使用,则应使用非nil NO-CONFIRM参数调用它。。。 换句话说,请使用: (load-theme 'my-favourite-theme t)
律师名单

1
所以我需要(load-theme 'name t nil)还是只是(load-theme 'name t)
Geradlus_RU 2015年

2
可选的参数nil需要包括只有在随后的可选参数是非nil。例如,如果您希望第一个可选参数为nil,第二个可选参数为t,则nil第一个参数将需要。由于第二个可选参数是nil-您可以省略或包含它-因此没有区别。有时nil,当没有后续的非nil可选参数时,我只使用可选参数,以便我知道特定功能可以使用多少个可选参数,即视觉提示。
法律学家

@lawlist的建议是一种解决方法,而不是解决方案。最好弄清楚为什么会出现此问题,因为它可能会导致其他问题。实际上,我已经多次看到此问题,所以我非常想知道原因。
马拉巴巴

@Geradlus_RU如果您未将NO-CONFIRM参数指定为t,则每次更新主题包后emacs都会再次询问您该问题(因为其.el校验和已更改)。是这样吗 如果每次启动emacs时都一直收到这些提示(即使主题.el尚未更新),那么请确保主题校验和已由emacs保存,并且在启动期间也被emacs读取。一种可能的情况是,您已将custom.el保存为单独的文件(emacs会将这些主题存储在安全主题中),但您没有在init中加载该文件。
Kaushal Modi 2015年

Answers:


10

您的init.el文件可能包含如下代码段:

(custom-set-variables
 ;; custom-set-variables was added by Custom.
 ;; If you edit it by hand, you could mess it up, so be careful.
 ;; Your init file should contain only one such instance.
 ;; If there is more than one, they won't work right.
 ...)

除其他事项外,此摘要负责保存和还原custom-safe-themes变量。因此,如果这恰好在init文件的末尾(通常是这种情况),则可能(load-theme ...)在其上方添加了一行,这解释了为什么Emacs在启动过程中不知道您的安全主题。

只需将该代码段移到init文件的顶部,即可解决您的问题。


4

我正在使用moe-them,而

(require 'moe-theme)
(moe-dark)

将加载主题而不会出现error / warning / prompt,但是如果我M-x load-theme在Emacs中,它将提示诸如“将主题视为安全”,然后我找到了解决方案:

(setq custom-safe-themes t)

我不知道这是否可以解决您的问题,但是您可以尝试一下。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.