无法加载主题的Emacs24解决方法

3

首先,我的 Emacs 版本是 GNU Emacs 24.3.1 (x86_64-pc-linux-gnu, GTK+ Version 3.12.2) of 2014-06-06 on barber, modified by Debian,我在一台 2009 年的 MacBook Pro 上运行 Debian Jessie 操作系统。

我从网上下载了很多主题,认为这些主题可以让在 Emacs 中工作更加舒适,并将它们放在 ~/.emacs.d/themes/ 文件夹中。我下载了 emacs-goodies-el 包。我已设置自定义加载路径,使这些主题位于特定文件夹中。当我启动时,根据是否尝试使用 (load-theme tron t) 加载主题,我会得到两种不同的结果。两个错误都是这种类型:Symbol's value as variable is void: <!DOCTYPE

当我以 --debut-init 模式运行 Emacs 时,出现以下情况:

Debugger entered--Lisp error: (void-variable <!DOCTYPE)
eval-buffer()  ; Reading at buffer position 14
load-theme(jazz t)
eval-buffer(#<buffer  *load*> nil "/home/finnds/.emacs" nil t)  ; 
Reading at buffer      position 1203
load-with-code-conversion("/home/finnds/.emacs" "/home/finnds/.emacs" t t)
load("~/.emacs" t t)
#[0 "\205\262

当我尝试通过 M-x customize-themes 加载主题时,出现错误:load-theme: Symbol's value as variable is void: <!DOCTYPE,所有颜色都变成了白色/浅色/默认值。

这是我的.emacs文件,位于custom-set-variablescustom-set-faces之后(也就是文件底部):
(add-to-list 'custom-theme-load-path "~/.emacs.d/")
(load-theme 'jazz t)
(require 'color-theme)
(eval-after-load "color-theme"
  '(progn
     (color-theme-initialize)))
(setq package-archives '(("gnu" . "http://elpa.gnu.org/packages/")
                         ("marmalade" . "http://marmalade-repo.org/packages/")
                         ("melpa" . "http://melpa.milkbox.net/packages/")))

我已经尝试按照维基和其他主题网站所说的做法,但仍然收到这个消息。我尝试寻找答案,但没有像我这种情况的特定答案。有人能帮我解决这个问题吗?提前感谢!

2个回答

3
您正在混用基于color-theme包的旧色彩主题处理和Emacs 24.x内置主题支持,这是不应该做的。我建议您查看这篇文章,以了解有关Emacs中颜色主题的更多信息。以下是最小设置示例(使用zenburn主题):
(require 'package)
(add-to-list 'package-archives
             '("melpa" . "http://melpa.milkbox.net/packages/"))
(package-initialize)

(unless (package-installed-p 'zenburn-theme) (package-install 'zenburn-theme))

(load-theme 'zenburn t)

为了加载本地可用的主题:
(add-to-list 'custom-theme-load-path "~/.emacs.d/themes")
(load-theme 'theme-name t)

这里假设您已经将一个名为theme-name的适用于Emacs 24的主题放置在您的~/.emacs.d/themes文件夹中。

你现在是从一个包中加载它,是吗?如果我只是把它们放在我的 .emacs.d/themes/ 文件夹里,它会怎么工作?我觉得我已经尝试了那个网站上的方法,但我会再读一遍。 - Finn
这在链接的文章中已经提到了,但是我还是更新了我的文章。 - Bozhidar Batsov
我把 (require 'color-theme) 块删除到 (color-theme-initialize),然后按照您的方法进行。现在 Emacs 给我返回了和一开始相同的错误,提示 An error occured while loading 'home/finn/.emacs/ - Symbol's value as variable is void: <!DOCTYPE。不确定该怎么办,因为我感觉我已经根据您刚才发布的文章正确地做了。 - Finn
1
请查看您正在尝试加载的文件。它可能包含一些不正确的数据。 - Bozhidar Batsov

3
  1. 您正在尝试加载HTML文件,而不是Emacs-Lisp文件。听起来像是您保存文件时出错了。<!DOCTYPE是告诉您这一点的。

  2. 由Bozhidar B.撰写并引用的文章是具有误导性的。我建议您查看EmacsWiki页面。该页面公正地比较和对比了由库color-theme.el提供的颜色主题和添加到Vanilla Emacs 24中的自定义主题

  3. 这两种主题不是同一回事,也没有一种可以取代另一种,尽管您可能会听到这样的说法。每种主题都有其优点(和缺点)和使用情况。

    是的,您可以同时使用两种主题——"你不应该这么做"这种说法是不正确的。阅读维基页面,了解它们两个,然后自己决定哪种更适合您。

    我并没有任何利益关系。我的代码(IciclesDo Re Mi)可以让您循环使用主题等,同时支持颜色主题自定义主题


这就是我的问题的答案。我已经正确地将所有内容放入了.emacs文件中,但正如你和Bozhidar告诉我的那样,.el文件以某种方式保存为HTML文件。我没有从Github下载原始文件,这就是为什么一切都乱七八糟的原因。 - Finn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接