根据主模式更改Emacs模式 - 线条颜色

TX *_*X T 6 emacs elisp modeline emacs-faces

我想看看是否有办法在主模式下更改模式链接前景和背景颜色,

我正在考虑添加逻辑

(add-hook 'after-change-major-mode-hook
Run Code Online (Sandbox Code Playgroud)

但是,我没有所有emacs lisp经验来做出这样的改变.这是逻辑:

switch major-mode:
case "emacs-lisp-mode":
  (set-face-foreground 'mode-line "ivory")
  (set-face-background 'mode-line "DarkOrange2")
case "ruby-mode":
  (set-face-foreground 'mode-line "white")
  (set-face-background 'mode-line "red")
...
default:
  (set-face-foreground 'mode-line "black")
  (set-face-background 'mode-line "white")
end switch
Run Code Online (Sandbox Code Playgroud)

提前谢谢了!.

Ste*_*fan 9

你可能想要这样的东西:

(add-hook 'emacs-lisp-mode-hook
          (lambda ()
            (face-remap-add-relative
             'mode-line '((:foreground "ivory" :background "DarkOrange2") mode-line))))
Run Code Online (Sandbox Code Playgroud)

您可能还想为脸部使用脸部重新映射mode-line-inactive.