如何更改单个emacs缓冲区的背景颜色?


8

我想使连接到生产数据库的SQL交互式缓冲区非常非常明显,因此我想将缓冲区的背景更改为深红色。

set-background-color但是不起作用;它将所有框架的颜色设置为指定的颜色。

如何更改仅一个缓冲区的背景?

Answers:


9

我为此创建了一个emacs lisp包:https : //github.com/vic/color-theme-buffer-local它使用Emacs的Face remapping在本地安装主题脸。


(require 'color-theme-buffer-local)
(add-hook 'java-mode-hook (lambda nil (color-theme-buffer-local 'color-theme-robin-hood (current-buffer)) ))


6

你不能

背景颜色通常是特定于框架的。

您可以default使用来将面部的背景颜色设置为特定于框架set-face-background,如下所示:

(set-face-background 'default "#CCCCCC" (window-frame (frame-selected-window))

框架定制通常通过框架参数控制。现在,如果您仔细查看background-colorfor框架参数,您会看到默认的背景色是取自default面部的-这就是上面的elisp起作用的原因。

除此之外,似乎可以通过使用次要模式buffer-face-mode(在23.1中添加)结束缓冲区背景颜色的关闭-但是,这只会更改缓冲区文本的背景,而不是整个背景。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.