5

我在 Windows 8 上使用 emacs 24.3。我已经从 marmalade 存储库安装了 solarized color 主题,并且可以使用M+进行设置x load-theme。当我使用自定义时,它也会为当前会话设置,但当我再次打开 emacs 时不会加载。

我可以打开自定义菜单并选择主题,但保存更改没有任何作用,并且与我的下一个会话之间没有任何变化。我在这里查看了几个关于颜色主题的问题,但大多数都不适用于 Emacs 24,因为我不需要使用color-theme它。

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

(custom-set-variables
  '(custom-enabled-themes (quote (solarized-dark)))
  '(custom-safe-themes (quote ("fc5fcb6f1f1c1bc01305694c59a1a861b008c534cae8d0e48e4d5e81ad718bc6" default)))
...

当我尝试放入(load-theme 'solarized-dark t)my.emacs时,出现错误:

error: Unable to find theme file for `solarized-dark'

我检查了custom-theme-load-path打开 emacs 后的值,它包括 elpa 用于存储日晒主题的目录。如上所述,我可以手动加载主题,但是在初始化期间加载它的一些事情是破坏性的。

4

2 回答 2

14

只需添加

(包初始化)

到您的 .emacs 文件的顶部,您就可以开始了。

于 2013-03-21T20:59:18.930 回答
0

旁注:如果主题作者已经处理了它,主题将自己添加到 中custom-theme-load-path,但这不是 的一部分,而是deftheme取决于实现此行为的各个主题作者。

为了解决这个问题,我制作了一个 emacslisp 的快速片段,它将找到名称中带有主题的包,然后将它们添加到custom-theme-load-path启动时。

只需将它添加到您的顶部附近~/.emacs~/.emacs.d/init.el(即在您之前load-theme

它依赖于s.eldash.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)))
于 2013-03-22T09:59:17.767 回答