Emacs按模式自定义背景颜色

我使用emacs编辑多种文件类型,并希望有一个简单的可视化队列来告诉.vhd或.py文件中的.c文件。 如何将自定义背景颜色添加到该语言的主要模式?


你可以通过钩子来做到这一点。 除了其他事情你可以挂钩是当一个新的主要模式开始。 把这样的东西放到你的.emacs文件中,每当你进入Python模式时,emacs都会将你的背景颜色设置为紫色。

  (add-hook 'python-mode-hook
            (lambda ()
              (set-background-color "purple")))

如果您切换回没有显式设置背景挂钩的模式,则将背景颜色重置为默认值,这是读者的练习。

您也可以使用Mx set-background-color手动设置背景颜色


您不能逐个缓冲地设置背景颜色。 查看SU问题如何更改单个emacs缓冲区的背景颜色?

这里的第一个答案显示了如何更改单个Emacs框架的背景,如果每个文件(或每个模式)有一个框架,这可能对您有用。


对于后代,由于此线程已有4年历史,现在Emacs 24.4+可以在缓冲区本地级别上更改面部。 只需定义一张脸并使用(face-remap-add-relative)来替换您想要的任何脸部。

定义一个defface

(defface my-special-face '((t :background "aqua")))

然后在您选择的模式中添加一个钩子:

(add-hook 'python-mode-hook
          (lambda ()
            (face-remap-add-relative 'default 'my-special-face)))
链接地址: http://www.djcxy.com/p/63859.html

上一篇: Emacs custom background color by mode

下一篇: C++ Keywords not Colored in Emacs