【问题标题】:Can't get Emacs24 to load themes无法让 Emacs24 加载主题
【发布时间】:2014-09-13 23:01:23
【问题描述】:

首先,我的 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: &lt;!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/")))

我已尝试完全按照 wiki 和其他几个主题站点的指示进行操作,但我仍然不断收到此消息。我试图寻找答案,但我发现没有一个像我的确切案例那样的特定答案。有谁可以帮我离开这里吗?提前致谢!

【问题讨论】:

    标签: emacs configuration themes elisp


    【解决方案1】:

    您正在混合旧的颜色主题处理(基于 color-theme 包)和 Emacs 24.x 对主题的内置支持,您不应该这样做。我建议查看this article 以了解有关 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/ 文件夹中时,它会如何工作?我想我已经尝试过那个网站上的方法,但我会再读一遍。
    • 链接的文章中提到了,但我已经更新了我的文章。
    • 我将 (require 'color-theme) 块删除到 (color-theme-initialize),然后完全按照您写的那样做。 Emacs 现在告诉我与我开始时相同的错误,An error occured while loading 'home/finn/.emacs/ - Symbol's value as variable is void: &lt;!DOCTYPE Unsure what to do here,因为我觉得我按照您刚刚发布的文章所做的一切都是正确的。
    • 查看您尝试加载的文件。里面可能有一些不正确的数据。
    【解决方案2】:
    1. 您正在尝试加载 HTML 文件,而不是 Emacs-Lisp 文件。听起来您保存的文件错误。 &lt;!DOCTYPE 告诉你这个。

    2. Bozhidar B. 撰写并引用的article 具有误导性。我推荐EmacsWiki page 来代替。它公平地比较和对比由库 color-theme.el 提供的 颜色主题 和添加到 vanilla Emacs 24 中的 自定义主题

    3. 这两种主题不是一回事,并且都不替代另一个,尽管你可能听到了什么。每个都有其优点(和缺点)和用例。

      是的,你可以同时使用这两种方法——“你不应该这样做”是不正确的。阅读 wiki 页面,了解它们,然后自己决定什么对你有用。

      我这样说是在没有赛马的情况下说的。我的代码(IciclesDo Re Mi)可让您循环主题等。同样支持两种类型的主题:颜色主题和自定义主题。

    【讨论】:

    • 这是我的问题的答案。我将所有内容正确地放入.emacs 文件中,但正如您和Bozhidar 告诉我的那样,.el 文件不知何故被保存为 HTML 文件。我没有从 Github 下载原始文件,这就是为什么一切都搞砸了。
    猜你喜欢
    • 1970-01-01
    • 2011-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-14
    相关资源
    最近更新 更多