Emacs按模式自定义背景颜色

时间:2010-06-22 15:32:16

标签: emacs elisp

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

3 个答案:

答案 0 :(得分:7)

你可以通过钩子来做到这一点。您可以挂钩的其他内容是新主要模式启动时。将这样的内容放入.emacs文件中,每次进入Python模式时,emacs都会将背景颜色设置为紫色。

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

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

您也可以使用M-x set-background-color

手动设置背景颜色

答案 1 :(得分:4)

您无法逐个缓冲地设置背景颜色。请参阅SU问题How can I change the background colour of a single emacs buffer?

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

答案 2 :(得分:4)

对于后人来说,由于这个帖子已有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)))