Emacs: Найдите определение лица (цвет, другие стили и т. Д.) В точке

Я делаю тему для Emacs на основе тем по умолчанию, а именно темы GUI по умолчанию (белый фон) и темы, которая выходит из флага --reverse-video (черный фон). Просто предоставим больше цветов для граней плагинов и т. Д., Чтобы все они имели более унифицированный вид.

Если вам интересно: https://github.com/Greduan/emacs-theme-better-defaults

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

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

Мне известны describe-face, what-cursor-position (C-x = или C-u C-x =) и list-colors-display.

Первые два не предоставляют нужной мне информации, а именно, какой цвет он использует (шестнадцатеричный код или другой), или, по крайней мере, я не смог его найти. Я, вероятно, мог бы использовать list-colors-display, но это действительно было бы PITA, чтобы попытаться найти точный цвет, который он использует. ржу не могу

Любая помощь приветствуется. Спасибо. :)


person greduan    schedule 16.08.2014    source источник


Ответы (2)


На самом деле describe-face действительно предоставляет информацию, которую вы, кажется, ищете. Поместите курсор на персонажа с интересующим вас лицом. Сделайте M-x describe-face. По умолчанию это лицо персонажа в точке. Нажмите Enter: он будет описывать это лицо. Вот пример того, что вы получите для лица default из темы чернильницы; обратите внимание на шестнадцатеричные значения переднего и заднего плана, которые вам нужны:

Face: default (sample) (customize this face)

Documentation:
Basic default face.

Defined in `faces.el'.

        Family: DejaVu Sans Mono
       Foundry: unknown
         Width: normal
        Height: 150
        Weight: normal
         Slant: normal
    Foreground: #bdbdbd
    Background: #0d0d16
     Underline: nil
      Overline: nil
Strike-through: nil
           Box: nil
       Inverse: nil
       Stipple: nil
          Font: #<font-object -unknown-DejaVu Sans Mono-normal-normal-normal-*-26-*-*-*-m-0-iso10646-1>
       Fontset: -unknown-DejaVu Sans Mono-normal-normal-normal-*-26-*-*-*-m-0-fontset-auto1
       Inherit: nil
person Dan    schedule 16.08.2014
comment
Так оно и есть. Черт возьми! Клянусь, я пробовал, все было пустым. ржу не могу. Я пробовал это в нескольких местах, и теперь он показывает нормально. Большое тебе спасибо. :) - person greduan; 16.08.2014
comment
Если лицо имеет нулевые значения для свойств, которые вы ищете, но также имеет свойство inherit, вам следует перейти по этой ссылке для получения подробной информации о лицах, от которых оно наследуется. Или в случае неудачи чего-либо еще, default лицо. - person phils; 16.08.2014

Вы можете использовать describe-char для этого. describe-char покажет свойства текста для символа, над которым точка находится, что покажет вам, среди прочего, список лиц, используемых для украшения персонажа. Вы можете перейти к свойствам лица прямо из окна свойств персонажа или использовать describe-face.

person erikstokes    schedule 16.08.2014
comment
describe-char сообщит вам, какое лицо применено к персонажу, но вам все равно нужно будет использовать describe-face для получения свойств цвета (например, переднего плана и фона). - person Dan; 16.08.2014
comment
Дэн: Все это связано с выводом describe-char, так что это простейшая отправная точка. - person phils; 16.08.2014
comment
phils: правда, что он связан, но он сохраняет шаг в describe-face, а не в describe-char, а затем следует по ссылке. - person Dan; 16.08.2014
comment
Причина, по которой я всегда использую / рекомендую describe-char (ну, C-u C-x =, который включает его), заключается в том, что у персонажа может быть несколько лиц. describe-face предложит подходящий вариант по умолчанию, но не обязательно тот, который вам нужен. - person phils; 16.08.2014
comment
Ваш ответ очень полезен, спасибо. :) Однако я приму ответ @Dan, потому что он отвечает на мой первоначальный вопрос. :) Я все же проголосовал за вашу. Спасибо. :) - person greduan; 16.08.2014
comment
phils: интересно re: несколько лиц - не думал об этом. - person Dan; 16.08.2014