Можно ли сделать твики для цветовой темы для каждого режима? - PullRequest
5 голосов
/ 08 апреля 2011

Я использую Emacs 23.2.1 из Ubuntu 11.04.Я установил порт purcell для цветовой темы Solarized , но мне бы хотелось настроить некоторые грани, чтобы буферы Python выглядели как снимок экрана Solarized Vim .Достаточно просто отредактировать цветовую тему, чтобы всегда использовались мои предпочтительные цвета, но это также изменило бы их в режиме C, и я хочу избежать этого.

В частности, вот настройка по умолчанию для встроенного лица:

(font-lock-builtin-face ((t (:foreground ,green))))

В режиме Python - и только в режиме Python - я хотел бы использовать это вместо:

(font-lock-builtin-face ((t (:foreground ,blue))))

В идеале я хотел бы внести это изменение, вставив некоторую логику в определение цветовой темы, чтобы я мог отправить свои корректировки в исходное состояние с пометкой «это изменения просто выделение Python».В противном случае я согласился бы на что-то в моем init.el.Я бы предпочел, чтобы он был упакован с основной цветовой темой.

Возможно ли это?Сотрите это.Это Emacs;Я знаю это возможно!Но как я могу это сделать?

1 Ответ

5 голосов
/ 09 апреля 2011

Это должно быть возможно при использовании Переопределение лица . Несмотря на то, что вы предпочитаете исправлять определение цветовой темы, я бы посоветовал поместить в файл init.el что-то вроде следующих строк, поскольку это более «стандартный» способ выполнения таких действий:

(add-hook 'python-mode-hook 'remap-builtin-face-blue)

(defun remap-builtin-face-blue ()
  (let ((blue "#2075c7"))
    (set (make-local-variable 'face-remapping-alist)
         `((font-lock-builtin-face :foreground ,blue)))))
...