如何为特定模式设置颜色?

How set colors for a specific mode?

我正在尝试 Emacs。我想为 Eshell 设置颜色。我先用 set-foreground-color 试了一下。但它也影响了我的其他模式。

  (add-hook 'eshell-mode-hook (lambda ( default ((t (:foreground "#BD8700"))))))

但这也不起作用。或者它也会影响其他模式/scratch 的颜色。

有人有什么建议吗?这不是一个重复的问题,因为其他答案也会改变其他缓冲区的颜色。

这里是 link 关于重新映射面孔的文档:http://www.gnu.org/software/emacs/manual/html_node/elisp/Face-Remapping.html

(defun my-eshell-mode-faces ()
  (face-remap-add-relative 'default '(:foreground "#BD8700")))

(add-hook 'eshell-mode-hook 'my-eshell-mode-faces)