我在Windows 8上使用emacs 24.3。我已经从marmalade存储库中安装了曝光的颜色主题,并且能够使用 M + x {来设置它{1}}。当我使用Customize时,它也为当前会话设置,但是当我再次打开emacs时,它不会加载。
我可以打开自定义菜单并选择主题,但保存更改不会做任何事情,并且在我和下一个会话之间没有任何变化。我在这里看了几个关于颜色主题的问题,但大多数都不适用于Emacs 24,因为我不需要使用load-theme
来完成它。
以下是我的color-theme
文件的摘要。
.emacs
当我尝试将(custom-set-variables
'(custom-enabled-themes (quote (solarized-dark)))
'(custom-safe-themes (quote ("fc5fcb6f1f1c1bc01305694c59a1a861b008c534cae8d0e48e4d5e81ad718bc6" default)))
...
放入我的(load-theme 'solarized-dark t)
时,我收到错误:
.emacs
我在打开emacs后检查了error: Unable to find theme file for `solarized-dark'
的值,它包含了elpa用于存储曝光主题的目录。如上所述,我可以手动加载主题,但在init期间加载它的一些事情就是破坏。
答案 0 :(得分:14)
添加
(包初始化)
在你的.emacs文件的顶部,你很高兴。
答案 1 :(得分:0)
旁注:如果主题作者已经处理过,主题会将自己添加到custom-theme-load-path
,但这不是deftheme
的一部分,由个别主题作者实现这种行为。
为了解决这个问题,我制作了一个快速的emacslisp片段,它会在其名称中找到包含主题的包,然后在启动时将它们添加到custom-theme-load-path
。
只需将其添加到~/.emacs
或~/.emacs.d/init.el
的顶部(即load-theme
之前
它依赖于s.el
和dash.el
(均可在elpa上找到)
(require 'dash)
(require 's)
(-each
(-map
(lambda (item)
(format "~/.emacs.d/elpa/%s" item))
(-filter
(lambda (item) (s-contains? "theme" item))
(directory-files "~/.emacs.d/elpa/")))
(lambda (item)
(add-to-list 'custom-theme-load-path item)))