Переключение между цветовыми темами в Emacs (<v.24) - PullRequest
7 голосов
/ 06 февраля 2011

Обновление:

Обратите внимание, что эта тема не относится к последним версиям Emacs (24+).Emacs теперь поставляется с собственной мощной системой цветовой тематики (например, см. Обзор здесь ), которая не требует загрузки внешнего пакета color-theme.


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

(require 'color-theme)            
(eval-after-load "color-theme"   
  '(progn                        
     (color-theme-initialize)    
     (color-theme-aalto-light))) 

;; Aliases to color-themes, e.g. 'M-x a' switches to color-theme-hober

(defalias 'a 'color-theme-hober)
(defalias 'b 'color-theme-aalto-light)

Теперь, когда Emacs загружается, он отображает color-theme-aalto-light тема правильно, и, когда я M-x a изменить на color-theme-hober, это тоже работает.

Проблема в том, что я снова пытаюсь изменить цветовую тему на color-theme-aalto-light.Некоторые цветные лица остаются в старой цветовой теме, в то время как другие меняются на новую цветовую тему.Я попытался с различными комбинациями цветовых тем без удачи (цвет лица не всегда полностью обновляется, независимо от цветовой темы, которую я переключаю).Есть мысли?

Ответы [ 2 ]

9 голосов
/ 06 февраля 2011

Это известная ошибка в пакете 'color-theme'. Если эта функция важна для вас, рассмотрите возможность обновления до trunk (в будущем emacs-24.1), она изначально поддерживает изменение тем (M-x customize-themes).

2 голосов
/ 06 февраля 2011

цветовые темы - это просто функции, которые присваивают новые цвета определенным лицам.В них нет ничего особенного, особенно лица не сбрасываются перед переключением цветовых тем.Если одна цветовая тема A устанавливает цвет для определенного лица, а другая B - нет, то B просто примет цвет, определенный A для этого лица.

Это более или менее по своему замыслу, и вы ничего не можете с этим поделать, кроме изменения цветовых тем для покрытия всех определенных лиц (что довольно утомительно, а также совершенно невозможно, потому что любая библиотека elispопределить свои собственные лица).

...