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

ToB*_*ced 5 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")))              
Run Code Online (Sandbox Code Playgroud)

当我打开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"))))
Run Code Online (Sandbox Code Playgroud)

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

小智 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))
Run Code Online (Sandbox Code Playgroud)

完成此操作后,Emacs 会询问您是否要永久添加主题目录和主题以启用主题。如果你的回答是肯定的,它会附加一些代码到(custom-set-variables ...)

示例主题如下:

http://pastebin.com/S2BHmd5s