我可以在23.1,23.4下使用我的样式文件,但在我将Emacs更新为24.1后,我无法使用旧样式文件。例如,我的一个样式文件是color-theme-arjen.el。链接在这里:
https://github.com/credmp/color-theme-arjen/blob/master/color-theme-arjen.el
在我的elisp文件中,我使用以下代码加载颜色主题:
(加载文件“〜/ emacs / site-lisp / color-theme / master_color-theme-arjen.el”) (彩色主题罗)我不知道为什么颜色主题在Emacs 23.1& 23.4但只是在Emacs 24.1下不起作用。
当Emacs正在加载文件时,Emacs会出现以下错误:
符号的函数定义无效:plist-to-alist如果我取消注释上面的代码并且不加载样式文件,则错误将被取消。
有谁知道为什么会这样?或者我该如何调试它?
答案 0 :(得分:21)
是的,我也发现了这个错误。似乎Emacs 24没有'plist-to-alist'功能。所以你应该自己写一下。这是我的。 将此函数放入dot-emacs文件中即可。
(defun plist-to-alist (the-plist)
(defun get-tuple-from-plist (the-plist)
(when the-plist
(cons (car the-plist) (cadr the-plist))))
(let ((alist '()))
(while the-plist
(add-to-list 'alist (get-tuple-from-plist the-plist))
(setq the-plist (cddr the-plist)))
alist))
希望有所帮助:)
答案 1 :(得分:3)
色彩主题的东西在24年进行了大量修改,有一个颜色主题包包含在emacs中(参见M-x customize-themes
),据我所知,预计会破坏旧主题。
据报道,来自marmalade的颜色主题包也可以使用。
您可能应该为color-theme-arjen打开错误报告。
答案 2 :(得分:0)
我不知道为什么,但是当在MacOS X上的emacs 24.3.1中安装曝光的主题时,我发现如果我把我的init行:
(load-file "~/lisp/color-theme/color-theme.el")
(load-file "~/lisp/emacs-colors-solarized/color-theme-solarized.el")
(color-theme-solarized 'dark)
关闭滚动条后
(if (featurep 'scroll-bar)
(scroll-bar-mode -1))
它工作正常。反过来说,我得到上面的错误。我不知道为什么color-theme-alist函数会因缺少滚动条而受影响(plist-to-alist函数调用似乎只适用于XEmacs)
答案 3 :(得分:0)
我非常感谢wenjun.yan。但我宁愿在定义之前检查函数是否存在:
(unless (fboundp 'plist-to-alist)
(defun plist-to-alist (the-plist)
(defun get-tuple-from-plist (the-plist)
(when the-plist
(cons (car the-plist) (cadr the-plist))))
(let ((alist '()))
(while the-plist
(add-to-list 'alist (get-tuple-from-plist the-plist))
(setq the-plist (cddr the-plist)))
alist)))