我想让连接到生产数据库的 SQL 交互缓冲区非常明显,所以我的想法是将缓冲区的背景更改为深红色。
set-background-color
但是,它不起作用;它将所有框架的颜色设置为指定的颜色。
我怎样才能更改单个缓冲区的背景?
答案1
我为此创建了一个 emacs lisp 包:https://github.com/vic/color-theme-buffer-local它使用 Emacs 的 Face 重新映射在本地安装主题面孔。
(require 'color-theme-buffer-local)
(add-hook 'java-mode-hook (lambda nil (color-theme-buffer-local 'color-theme-robin-hood (current-buffer)) ))
答案2
你不能。
背景颜色通常是特定于框架的。
您可以使用以下方式将脸部的背景颜色设置default
为特定于框架的颜色set-face-background
,像这样:
(set-face-background 'default "#CCCCCC" (window-frame (frame-selected-window))
框架定制通常通过以下方式控制框架参数。现在,如果你仔细看看background-color
用于框架参数,你会看到默认的背景颜色是从default
面中取出来的——这就是为什么上面的 elisp 有效果的原因。
除此之外,似乎最接近缓冲区背景颜色的方法是使用次要模式buffer-face-mode
(在 23.1 中添加) - 但是这只会改变文本缓冲区,而不是整个背景。
答案3
我没有尝试过,但是http://www.emacswiki.org/emacs/BufferBackgroundColor听起来像是一个可能的解决方案。