怎样在多个主题分别自定义配色?

Spacemacs 0.200.9 dev @ Emacs 25.1.1 比如我使用了两个主题,一个深色背景,一个浅色。 深色的主题在使用 org-mode 时,level 比较多时候,7、8级标题色彩对比不够明显。

我想只在深色主题启用时,自定义 (org-level-7 ((t (:foreground "#XXXXXX")))) 为对比度明显的颜色。而浅色主题目前比较满意,不做修改(即使修改,自定义使用的颜色和深色主题也不一样。)

不知道对应的函数是哪个,该如何设置才好? 求指点,谢谢!

我没找到对应的函数,如果有记得告诉我

我的方法是这样的,

(setq ô '#1=(doom-one doom-molokai solarized-dark solarized-light . #1#))
(defun theme-cycle ()
  (interactive)
  (disable-theme (pop ô)) (load-theme (car ô) t)
  (local-theme-related-faces (car ô)))

然后在(local-theme-related-faces) 里面对每个主题设置颜色

(or c (setq c (car ô)))
(set-face-attribute 'font-lock-builtin-face nil :weight 'medium)
(with-eval-after-load 'nlinum (set-face-attribute 'linum nil :background nil :foreground nil :weight 'thin))
(cond
  ((eq c 'doom-one)
....

不算完美,但是够用

----

没有用Spacemacs, 我手动切换主题的

如果要用Spacemacs的话,找到那个切换主题的函数,加个Advice after 效果应该是一样的

关键的问题在于,对一种主题的修改会污染别的主题

Thx, 我也是手动切换的, @MephistoMMM 写的那个函数,我使用的时候会造成所有括号高亮,手动切换就没问题。而且用那个函数的话, set-face-attribute 的自定义设置不能自动生效。 我平时是浅色主题为主的,偶尔才用到深色,就放弃自动切换了。