Emacs覆盖init文件中color-theme的背景颜色

时间:2012-10-14 19:04:27

标签: emacs

我安装了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

1 个答案:

答案 0 :(得分:1)

嗯,这不是在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