Как узнать текущую цветовую тему в emacs

24

Когда emacs работает, как я могу узнать, какая цветовая тема используется в настоящее время?

Talespin_Kit
источник

Ответы:

19

Не существует понятия текущей темы, и, действительно, несколько тем можно применять последовательно, чтобы аддитивно определить набор активных лиц. Поддержка тем была добавлена ​​в последние версии Emacs (см. M-x customize-theme), И все еще есть опция «Выбрать более одной темы за раз».

Короче говоря, когда вы активируете тему, вы не переключаетесь на эту тему, а применяете изменения, указанные в теме, к лицам и переменным, которые она перечисляет.

Все настройки, которые явно не размещены в именованной теме, фактически помещаются в скрытую пользовательскую тему, поэтому всегда есть хотя бы одна активная тема. Другие включенные в данный момент темы перечислены в переменной custom-enabled-themes.

sanityinc
источник
4

Поделитесь примером использования color-theme-print, чтобы узнать, какую тему я применил.

через 'Mx color-theme-print' вы получите выходные данные об информации о цветовой теме, затем найдете типичное значение, уникальное для разных цветовых тем, я выбрал 'background-color', значение которого равно 537182 для моего emacs.

Откройте библиотеку цветовых тем «color-theme-library.el», затем найдите файл с ключевым словом «537182», после чего вы получите название темы.

Хотя это и не прямой путь, но он действительно работает, надеюсь, это поможет!

fwlx
источник
3

M-x color-theme-printПолезно сказать, какие именно шрифты используются. Он не скажет вам, какие именованные цветовые темы были применены, но вы должны быть в состоянии решить это из вашего файла инициализации. Если нет, то я предполагаю, что вы должны использовать режим, который применяет свою собственную цветовую тему (я знаю, что Proof General делает это, и это раздражает больше всего).

Jaybee
источник
1
Видимо это надо (require 'color-theme)сначала
Ролазаро Азевайрес
1

Чтобы добавить ответ sanityinc, вы должны либо установить его самостоятельно, либо в своем файле init.el (dotemacs).

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

@sanityinc спасибо за объяснение тоже. Я заметил, что когда я начал добавлять все больше и больше тем подряд, некоторые области, такие как мини-буфер, не изменялись или устанавливались в значение последней темы. теперь я знаю почему.

pjammer
источник
В старом color-themeпакете есть переменная с именем var color-theme-is-cumulative, которую вы можете установить, чтобы nilтемы не мешали друг другу; это звучит как хорошая идея, но результаты, как правило, совершенно неожиданные, я думаю, что отчасти потому, что темы обычно делают предположения о встроенных лицах.
да, я тоже заметил это предположение, когда я придумал ... я скопировал бы из "популярного", но у него было бы половину того места, которое сделал следующий ... и т.д. просто изменил те переменные, которые он «хотел», и которые были сотни, чтобы изменить, так что зачем. На связанной ноте, я использую тему шоколадного дождя и люблю это теперь. Он был на моей сборке 24.x уже много месяцев.
1
Я попробовал несколько цветовых тем, используя команду «color-theme-select», и мне понравилась color-theme, но я к тому времени закрыл буфер color-theme-select, а также я забыл, что я выбрал, поэтому я подумал, что некоторая переменная хранит, какая цветовая тема применяется в настоящее время. В буфере сообщений нет журналов об этом
Возможно, вы можете попробовать M-x describe-face RET default RET(или другое лицо не по умолчанию), а затем использовать M-x rgrepдля поиска .el-файлов color-theme, содержащих одинаковые имена цветов / шестнадцатеричные значения.
Извините - решение с поиском в буфере сообщений не помогает. M-x load-theme <colortheme>ничего не печатает в буфер сообщений.
Кристиан Херенц,