emacs:加载不同主题时背景颜色不会改变

emacs:加载不同主题时背景颜色不会改变

我正在使用 GUI Emacs。无论我加载哪个自定义主题,我的背景颜色都保持不变。这可能并不重要,但是当我加载不同的主题时,我总是收到消息:

message [sml] sml/theme set to automatic

在迷你缓冲区中。可能相关的 elisp 是:

(require 'powerline)
     .
     .
     .
(setq sml/theme 'powerline)
(sml/setup)

我使用稍微修改过的 Solarized-light 版本作为我的主题。在我的.emacs文件中我有:

(load-theme 'my-solarized-light 1)
;; (set-background-color "#fffff0")   ;; not necessary because theme was customized

solarized-light和之间的唯一区别my-solarized-light是我将背景颜色设置为#FFFFF0 而不是#FDF6E3。我遇到的一个问题是我不记得我是怎么做到的。

在我的文件顶部附近.emacs,在custom-set-variables, 下是

'(custom-enabled-themes (quote (my-solarized-light)))

如何使“加载主题”再次正常工作?

答案1

我有同样的问题。

我修改了一些字体设置,通过这些设置在我的 .spacemacs 文件中describe-face设置了值。custom-set-faces

(custom-set-faces
 ;; custom-set-faces was added by Custom.
 ;; If you edit it by hand, you could mess it up, so be careful.
 ;; Your init file should contain only one such instance.
 ;; If there is more than one, they won't work right.
 '(org-table ((t (:background "black" :foreground "#586e75" :weight bold)))))

这似乎将背景颜色应用于所有主题。删除此自定义并重新启动 spacemacs 解决了问题。

答案2

如果您已启用并使用会话保存,看起来该文件也在该文件中.emacs.d/.emacs.desktop保留了一个副本。background-color删除它对我来说是解决方案。

注意:在 emacs 会话中.emacs.desktop启用时修改 emacs 内的文件(desktop-save-mode 1)将使 emacs 在退出 emacs 时询问您是否确实要更新,.emacs.desktop因为它已在外部修改。这次你想说“不”,只是因为 emacs 会用它自己的内存中副本更新它,可能会将变量background-color设置为你想要删除的东西。

(第一次发帖,请多多包涵:))

答案3

我在 mac os 上使用 emacs 27 时遇到了同样的问题。就像这里的另一个答案一样,我使用过M-x customize-face default(因为“设置默认面孔”仍然由于某种原因在此版本中不起作用),并且实际上设置了背景和前景。我取消选中旁边的复选框,然后主题再次开始正常工作。

相关内容