我正在使用emacs
配置prelude
。
我更改了主题并且工作正常,我将其添加到preload directory
中,如此:
;; preload color theme
(setq prelude-theme 'my-theme)
我通过prelude-require-packages
安装了主题,但未安装在preload
文件夹中(不确定它是否即将推出)。有没有办法以编程方式检查主题是否可用,用更安全的东西替换上一行,如:
;; just to get the idea
(when (is-available 'my-theme)
(setq prelude-theme 'my-theme))
修改 我试过了:
;; preload color theme
(when (featurep 'my-theme)
(setq prelude-theme 'my-theme))
但是在这种情况下,我得到了默认主题,而不是' my-theme。
答案 0 :(得分:1)
load-theme
函数使用locate-file
来查找主题文件。这种方法基于代码:
(if (locate-file (concat (symbol-name 'my-theme) "-theme.el")
custom-theme-load-path '("" "c"))
(setq prelude-theme 'my-theme))
您可以使用主题文件名字符串替换整个(concat ...)
构造,对于此示例,该字符串将为"my-theme-theme.el"
。