Emacs пользовательский цвет фона по режиму - PullRequest
6 голосов
/ 22 июня 2010

Я использую emacs для редактирования ряда типов файлов и хотел бы, чтобы простая визуальная очередь сообщала, например, файлы .c из файлов .vhd или .py.Как добавить собственный цвет фона в основной режим для этого языка?

Ответы [ 3 ]

7 голосов
/ 22 июня 2010

Вы можете сделать это с помощью хуков. Среди прочего, вы можете подключить, когда начинается новый основной режим. Поместите что-то подобное в ваш файл .emacs, и emacs будет устанавливать фиолетовый цвет вашего фона каждый раз, когда вы переходите в режим Python.

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

Сброс цвета фона к значению по умолчанию в случае, если вы переключаетесь обратно в режим, в котором нет явной настройки фонового хука, поскольку он оставлен в качестве упражнения для читателя.

Вы также можете вручную установить цвет фона с помощью M-x set-background-color

4 голосов
/ 08 ноября 2014

Для потомков, так как этому потоку 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)))
4 голосов
/ 22 июня 2010

Вы не можете установить цвет фона для каждого буфера. См. SU вопрос Как мне изменить цвет фона отдельного буфера Emacs? .

Первый ответ показывает, как вы можете изменить фон для одного кадра Emacs, что может сработать, если у вас есть один кадр на файл (или на режим).

...