我想看看是否有一种方法可以根据主模式改变模式链接的前景和背景颜色,
我在考虑将逻辑添加到
(add-hook 'after-change-major-mode-hook但是,我没有所有的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非常感谢!
发布于 2013-04-10 08:55:14
你可能想要这样的东西:
(add-hook 'emacs-lisp-mode-hook
(lambda ()
(face-remap-add-relative
'mode-line '((:foreground "ivory" :background "DarkOrange2") mode-line))))您可能还希望对mode-line-inactive face使用face-remap。
发布于 2013-04-10 01:21:02
你所说的“逻辑”是这样的:
(add-hook 'after-change-major-mode-hook 'my-set-mode-line-colors)
(defvar my-mode-line-colors
'((emacs-lisp-mode :foreground "ivory" :background "DarkOrange2")
(ruby-mode :foreground "white" :background "red")))
(defun my-set-mode-line-colors ()
(face-remap-add-relative
'mode-line (list (or (cdr (assq major-mode my-mode-line-colors))
'(:foreground "black" :background "white"))
'mode-line)))或者,您也可以按照Stefan的建议,从特定于模式的钩子中执行此操作。
https://stackoverflow.com/questions/15906332
复制相似问题