【发布时间】:2011-03-06 21:31:02
【问题描述】:
例如,我使用 emacs 编辑多种文件类型,并希望有一个简单的可视队列来区分 .c 文件和 .vhd 或 .py 文件。如何为该语言的主要模式添加自定义背景颜色?
【问题讨论】:
例如,我使用 emacs 编辑多种文件类型,并希望有一个简单的可视队列来区分 .c 文件和 .vhd 或 .py 文件。如何为该语言的主要模式添加自定义背景颜色?
【问题讨论】:
你可以通过钩子来做到这一点。您可以挂钩的其他事情是新的主要模式何时开始。将这样的内容放入您的 .emacs 文件中,每次您进入 Python 模式时,emacs 都会将您的背景颜色设置为紫色。
(add-hook 'python-mode-hook
(lambda ()
(set-background-color "purple")))
在您切换回没有明确设置背景挂钩的模式的情况下,将背景颜色重置为默认值留给读者作为练习。
你也可以用 M-x set-background-color 手动设置背景颜色
【讨论】:
对于后代,由于这个线程已有 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)))
【讨论】:
您不能逐个缓冲区设置背景颜色。请参阅 SU 问题How can I change the background colour of a single emacs buffer?。
那里的第一个答案显示了如何更改单个 Emacs 框架的背景,如果每个文件(或每个模式)有一个框架,这可能对你有用。
【讨论】: