我使用emacs来编辑多种文件类型,希望能够通过一种简单的视觉方式来区分.c、.vhd或者.py等文件。如何为相关语言的major mode添加自定义背景颜色?
(add-hook 'python-mode-hook
(lambda ()
(set-background-color "purple")))
在切换回没有明确设置背景颜色的模式时,将背景颜色重置为默认值,这需要读者自己操作。
您也可以使用 M-x set-background-color 手动设置背景颜色。
为了记录,由于这个主题已经四年了,在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)))
您不能针对每个缓冲区设置背景颜色。请参阅SU问题如何更改单个emacs缓冲区的背景颜色?。
那里的第一个答案显示了如何为单个Emacs框架更改背景,如果您每个文件(或每个模式)有一个框架,则可能适用于您。