【问题标题】:Emacs override background color from color-theme in init fileEmacs 从 init 文件中的颜色主题覆盖背景颜色
【发布时间】:2012-10-14 19:04:27
【问题描述】:

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

    嗯,这不是在 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 对其进行修改以满足我的需要。我能够保存我的 init 文件,从我的计算机上擦除 emacs,然后重新安装它,替换 init 文件,并让它自动拾取所有内容。
    猜你喜欢
    • 2013-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多