Emacs如何在初始化文件中覆盖color-theme的背景颜色

5
我安装了emacs,创建了一个.emacs.d目录,并制作了一个init.el文件:
(require 'package)                                                              
(add-to-list 'package-archives                                                  
             '("melpa" . "http://melpa.milkbox.net/packages/") t)               
(package-initialize)                                                            

(when (not package-archive-contents)                                            
  (package-refresh-contents))                                                   

(defvar my-packages                                                             
  '(starter-kit                                                                 
    starter-kit-bindings                                                        
    starter-kit-lisp                                                            
    clojure-mode                                                                
    color-theme                                                                 
    nrepl))                                                                     

(dolist (p my-packages)                                                         
  (when (not (package-installed-p p))                                           
    (package-install p)))                                                       

(require 'color-theme)                                                          
(color-theme-initialize)                                                        
(color-theme-charcoal-black)                                                    
(color-theme-install-frame-params '((background-color . "black")))              

当我打开emacs时,我会得到color-theme-charcoal-black颜色,带有默认的灰色背景。如果我打开init.el并eval-buffer,则背景变为所需的黑色。
如何在不需要eval-buffer的情况下获得该效果?
我也尝试过:
(add-hook 'after-init-hook 
          '(lambda () (color-theme-install-frame-params 
                       '((background-color . "black"))))

类似于这个问题:https://superuser.com/questions/481793/permanently-override-background-colour-of-emacs-theme

与此类似的问题: 如何永久覆盖Emacs主题的背景颜色?
1个回答

2
这段文本的意思是:这不是在Emacs 24中设置主题的方式,但是你可以将旧主题修补成与新主题相似的样子。这里有一个我为自己制作的主题示例,但你可以选择自己喜欢的主题并替换值。我还没有完成这个主题,但它已经接近完成了 :)
完成之后,将文件保存到~/.emacs.d/themes/charcoal-black-theme.el中,并在你的.emacs文件中添加以下内容:
(add-to-list 'custom-theme-load-path (expand-file-name "~/.emacs.d/themes/"))
(setq custom-enabled-themes '(charcoal-black))

完成这些操作后,Emacs会询问您是否要永久添加主题目录和主题到启用的主题中。如果您回答肯定,它将在(custom-set-variables ...)中追加一些代码。
下面是示例主题:

http://pastebin.com/S2BHmd5s


接受此答案 >> 我不知道在Emacs 24中我应该如何设置颜色主题。为了保证可移植性,我想避免打补丁文件。最终,我使用deftheme安装了一个Emacs 24颜色主题,然后使用custom-set-faces修改它以满足我的需求。我能够保存我的初始化文件,从计算机中清除emacs,然后重新安装它,替换初始化文件,并自动获取所有内容。 - ToBeReplaced

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