Emacs:为特定窗口设置背景颜色
是否可以设置特定emacs窗口的背景颜色?
我正在使用“专用窗口”功能将emacs缓冲区固定到一个帧。 不过,我也希望这个窗口可以被识别为专用窗口。
目前,我正在使用buffer-face-mode
来设置具有稍暗背景色的缓冲区特定默认字体。 但是,这种格式也适用于查看相同缓冲区的窗口,这些窗口并不专用于缓冲区。 能够以每个窗口为基础设置字体将消除该问题。
做一个特定的窗口不是Emacs现在支持的功能。 OTOH你可以做一个特定的框架,所以如果你的窗口是在一个窗口内的窗口(通常是专用窗口的情况下),你可以肯定地设置背景颜色框架参数(并且应该能够请直接从display-buffer-alist
或special-display-regexps
。
你想要的是将缓冲区指定为“特殊显示”。 这只是你想要的。
您可以自定义这些选项(变量)中的一个或两个:
special-display-regexps
special-display-buffer-names
这是简单的方法。 Emacs喜欢考虑这些选项自24.3版本开始废弃,并且建议您使用令人难以置信的复杂选项display-buffer-alist
代替。
这就是我所做的,使所有以*
开头和结尾的名称缓冲区都显示在自己的专用帧中:
(setq special-display-regexps '("[ ]?[*][^*]+[*]"))
为了让特殊显示帧具有不同的属性(即帧参数),例如不同的颜色背景,请自定义选项special-display-frame-alist
。
这实质上是我使用的定义:
(setq special-display-alist
'((font . "-*-Lucida Console-normal-r-*-*-14-*-*-*-c-*-iso8859-1")
(width . 80)
(height . 14)
(mouse-color . "Yellow")
(cursor-color . "Yellow")
(menu-bar-lines . 1)
(foreground-color . "Black")
(background-color . "LightSteelBlue")
(top . 0)
(left . 0)
(unsplittable . t)
(user-position . t)
(vertical-scroll-bars . right)))
但我建议您使用自定义设置所有这些选项的值。
在Emacs 25.1.1中为我工作的方法是使用face-remapping-alist
变量。 初始化缓冲区时,将default
面部的:background
属性修改为所需的颜色。 例如,我将我的Treemacs缓冲区的背景颜色设置为与其他所有内容不同,通过在我的.emacs
文件中添加如下内容:
(defun treemacs-mode-handler()
(set (make-local-variable 'face-remapping-alist)
'((default :background "#303030"))))
(add-hook 'treemacs-mode-hook 'treemacs-mode-handler)
链接地址: http://www.djcxy.com/p/63865.html
上一篇: Emacs: Set background color for specific window
下一篇: How to get Emacs, nrepl.el and Leiningen to play along?