Emacs for Windows加载颜色主题时出错

Emacs for Windows加载颜色主题时出错,emacs,emacs24,Emacs,Emacs24,我在Windows8上使用Emacs24.3。我已经从果酱储存库安装了solarized color主题,并且能够使用M+xload theme进行设置。当我使用Customize时,它也会为当前会话设置,但当我再次打开emacs时,它不会加载 我可以打开“自定义”菜单并选择主题,但保存更改不起任何作用,并且在这段时间和下一个会话之间不会发生任何更改。我在这里研究了几个关于颜色主题的问题,但大多数问题不适用于Emacs 24,因为我不需要使用颜色主题 下面是我的.emacs文件的一个片段 (cu

我在Windows8上使用Emacs24.3。我已经从果酱储存库安装了solarized color主题,并且能够使用M+x
load theme
进行设置。当我使用Customize时,它也会为当前会话设置,但当我再次打开emacs时,它不会加载

我可以打开“自定义”菜单并选择主题,但保存更改不起任何作用,并且在这段时间和下一个会话之间不会发生任何更改。我在这里研究了几个关于颜色主题的问题,但大多数问题不适用于Emacs 24,因为我不需要使用
颜色主题

下面是我的
.emacs
文件的一个片段

(custom-set-variables
  '(custom-enabled-themes (quote (solarized-dark)))
  '(custom-safe-themes (quote ("fc5fcb6f1f1c1bc01305694c59a1a861b008c534cae8d0e48e4d5e81ad718bc6" default)))
...
当我尝试将
(加载主题'solarized dark t)
放入我的
.emacs
,我得到了错误:

error: Unable to find theme file for `solarized-dark'
在打开emacs后,我检查了
自定义主题加载路径的值,它包括elpa用于存储solarized主题的目录。如上所述,我可以手动加载主题,但在init期间加载主题的某些内容正在中断。

只需添加

(包初始化)


将主题添加到.emacs文件的顶部,您就可以开始了。

侧注:如果主题作者已经处理好了,则主题将添加到
自定义主题加载路径
,但是这不是
定义主题
的一部分,取决于实现此行为的各个主题作者

为了解决这个问题,我制作了一个emacslisp的快速片段,可以找到名称中包含主题的包,然后在启动时将它们添加到
自定义主题加载路径中

只需将其添加到
~/.emacs
~/.emacs.d/init.el
的顶部附近(即在
加载主题之前)

它依赖于
s.el
dash.el
(两者均可在elpa上获得)


这不会将主题添加到
自定义主题加载路径
@Slomojo颜色主题作为包分发,通常在加载时更新
自定义主题加载路径
。问题是“通常”与
包无关。el
完全取决于主题作者。此片段基本上是多余的:主题包确实应该通过自动加载更新
自定义主题加载路径
本身,以便在
之后立即可用(包初始化)
.Should和DO是两个不同的东西,它们没有,这很烦人,因此脚本。如果主题没有,它应该作为一个bug报告给它的作者。正如我在问题中提到的,主题的文件夹已经添加到
自定义主题加载路径
。问题是在我调用
加载它们的时候没有加载包e
@lunaryorn而与此同时,当你在等待x软件包作者进行修复时?-一个人的多余就是另一个人的“没有问题”
(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)))