8

Я хочу сделать интерактивные буферы SQL, которые связаны с производственными БД, очень и очень очевидными, поэтому я подумал о том, чтобы изменить фон буфера на темно-красный цвет.

set-background-color не работает, хотя; он устанавливает цвет всех кадров на указанный цвет.

Как я могу изменить фон только одного буфера?

3 ответа3

9

Для этого я создал пакет lisp для emacs: https://github.com/vic/color-theme-buffer-local, он использует переназначение лиц Emacs для локальной установки граней тем.


(require 'color-theme-buffer-local)
(add-hook 'java-mode-hook (lambda nil (color-theme-buffer-local 'color-theme-robin-hood (current-buffer)) ))

6

Ты не можешь

Цвет фона обычно зависит от кадра.

Вы можете установить цвет фона лица по default чтобы он был специфичным для кадра, используя set-face-background, например так:

(set-face-background 'default "#CCCCCC" (window-frame (frame-selected-window))

Настройки кадра обычно контролируются с помощью параметров кадра. Теперь, если вы внимательно посмотрите на background-color для параметров фрейма, вы увидите, что цвет фона по умолчанию берется с лица по default - вот почему вышеупомянутый elisp имеет эффект.

В прошлом кажется, что закрытие, которое вы можете получить для цвета фона буфера, - это использование режима buffer-face-mode в второстепенном режиме (добавлен в 23.1) - однако это изменяет только фон для текста буфера, а не весь фон.

1

Я не пробовал, но http://www.emacswiki.org/emacs/BufferBackgroundColor звучит как возможное решение.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .