Как изменить цвет лица злого состояния в powerline-evil?

Я хочу изменить цвета по умолчанию в теме powerline-evil-center-color. Я специально ищу, чтобы изменить цвета лица лица злого состояния, чтобы цвета фона и переднего плана соответствовали моей цветовой теме Emacs.

Я попытался посмотреть ридми на powerline-evil, но он не говорит мне, как настроить цвета с помощью моего init.el, и я попытался изменить код в powerline-evil.el, чтобы изменить цвета вручную. , но это все равно не сработало.

Следующий код взят из моего powerline-evil.el:

(defface powerline-evil-base-face
  '((t (:foreground "green" :inherit mode-line)))
  "Base face for powerline evil faces."
  :group 'powerline)

(defface powerline-evil-normal-face
  '((t (:background "#909737" :inherit powerline-evil-base-face)))
  "Powerline face for evil NORMAL state."
  :group 'powerline)

(defface powerline-evil-insert-face
  '((t (:background "blue" :inherit powerline-evil-base-face)))
  "Powerline face for evil INSERT state."
  :group 'powerline)

(defface powerline-evil-visual-face
  '((t (:background "orange" :inherit powerline-evil-base-face)))
  "Powerline face for evil VISUAL state."
  :group 'powerline)

(defface powerline-evil-operator-face
  '((t (:background "cyan" :inherit powerline-evil-operator-face)))
  "Powerline face for evil OPERATOR state."
  :group 'powerline)

(defface powerline-evil-replace-face
  '((t (:background "red" :inherit powerline-evil-base-face)))
  "Powerline face for evil REPLACE state."
  :group 'powerline)

(defface powerline-evil-motion-face
  '((t (:background "magenta" :inherit powerline-evil-base-face)))
  "Powerline face for evil MOTION state."
  :group 'powerline)

Даже если я установил передний план зеленым, как вы можете видеть в приведенном выше коде, он все равно отображается белым. Я не знаю, что делать. Кто-нибудь может помочь?

РЕДАКТИРОВАТЬ: У меня сейчас другая проблема. То, что сказал мне @AaronHarris, отлично подходит для цвета переднего плана, но я не могу изменить цвет фона для других состояний. Вместо этого вся моя линия режима становится фоновым цветом моей темы. Я добавил следующий код в свой init.el

(custom-theme-set-faces 'jazz '(powerline-evil-base-face
                                  ((t (:foreground "jazz-fg" :inherit mode-line)))
                                  :group 'powerline))

  (custom-theme-set-faces 'jazz '(powerline-evil-insert-face
                                  ((t (:background "jazz-blue" :inherit powerline-evil-base-face)))
                                  :group 'powerline))

Первая часть отлично работает для цвета переднего плана, но вторая часть делает что-то плохое.


person Simon Bugge Siggaard    schedule 20.09.2015    source источник


Ответы (1)


Я думаю, вы хотите использовать custom-theme-set-faces, чтобы сообщить своей теме, что делать с этим лицом, например:

(custom-theme-set-faces 'my-theme '(powerline-evil-base-face
                                    ((t (:foreground "green")))))

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

person Aaron Harris    schedule 21.09.2015
comment
Спасибо за ответ. Я использую тему джаза в качестве цветовой темы, поэтому правильно ли я добавляю в свой файл init.el следующее: (custom-theme-set-faces 'jazz-theme '(powerline-evil-base-face ((t (:foreground "green"))))) Если я это сделаю, я получаю сообщение об ошибке: Неизвестная тема 'джаз-тема. - person Simon Bugge Siggaard; 22.09.2015
comment
РЕДАКТИРОВАТЬ: я нашел ошибку. Тема известна в emacs как jazz, а не jazz-theme, так что это все исправляет. Спасибо за ответ Аарон :) - person Simon Bugge Siggaard; 22.09.2015