Como descobrir o tema de cores atual no emacs


24

Enquanto o emacs está em execução, como posso descobrir qual tema de cores está atualmente em uso?

Respostas:


19

Não existe o conceito de um tema atual e, de fato, vários temas podem ser aplicados em sequência para definir de forma aditiva o conjunto de faces ativas. O suporte ao tema foi adicionado às versões mais recentes do Emacs (consulte a página M-x customize-theme), e ainda há a opção de "Selecionar mais de um tema por vez".

Em resumo, quando você ativa um tema, não está mudando para esse tema, mas aplicando as alterações especificadas no tema às faces e variáveis ​​listadas.

Todas as personalizações que não são explicitamente colocadas em um tema nomeado são realmente colocadas no tema oculto do usuário, portanto sempre há pelo menos um tema ativo. Os outros temas ativados atualmente estão listadas na variável custom-enabled-themes.


4

Compartilhe um exemplo para usar color-theme-print para obter o tema que apliquei.

via 'Mx color-theme-print', você obterá informações sobre as informações do tema de cores e, em seguida, encontrará um valor típico que é exclusivo para diferentes temas de cores. Eu escolho 'background-color', cujo valor é 537182 para o meu emacs.

Abra a biblioteca de temas de cores 'color-theme-library.el' e pesquise o arquivo com a palavra-chave como '537182' e, em seguida, você encontrará o nome do tema.

Embora não seja uma maneira direta, mas realmente funcione, espero que ajude!


3

M-x color-theme-printé útil dizer exatamente quais faces da fonte estão em vigor. Ele não informa quais temas de cores nomeados foram aplicados, mas você deve conseguir resolver isso a partir do seu arquivo init. Caso contrário, suponho que você deva usar um modo que aplique seu próprio tema de cores (sei que o Proof General faz isso, e o mais irritante é).


1
Aparentemente, essa necessidade (require 'color-theme)primeiro
Rolazaro Azeveires 26/03

1

Para adicionar à resposta do sanityinc, você pode configurá-lo sozinho ou no seu arquivo init.el (dotemacs).

Eu acho que você está perguntando, porque você tentou alguns deles e esqueceu, certo? Sei que sim, gostaria de saber se você pode verificar seu buffer de Mensagens para ver o último aplicado.

@ Sanityinc obrigado pela explicação também. Percebi que quando comecei a adicionar mais e mais temas em sucessão, algumas áreas, como o mini buffer, não mudavam ou seriam definidas para o valor do último tema. agora eu sei porque.


No color-themepacote antigo , há um var chamado color-theme-is-cumulative, que você pode definir para nilque os temas não interfiram entre si; parece uma boa ideia, mas os resultados geralmente são totalmente inesperados, em parte porque os temas costumam fazer suposições sobre os rostos embutidos.

sim, eu notei essa suposição também, quando eu inventei uma ... Eu copiava de uma 'popular', mas ela teria metade do loc que a próxima tinha ... etc. Me levou a pensar que alguns temas apenas alterei as variáveis ​​que ele 'queria' e que havia centenas para mudar; então, por que se preocupar? Em uma nota relacionada, eu uso o tema chuva de chocolate e adoro agora. Está na minha versão 24.x há muitos meses.

1
Tentei alguns temas de cores usando o comando "color-theme-select" e gostei de um tema de cores, mas já havia fechado o buffer de seleção de temas de cores até então e também esqueci o que selecionei, então pensei que poderia ser alguma variável está armazenando qual tema de cor está sendo aplicado atualmente. Não há registros sobre o assunto em mensagens tampão

Talvez você possa tentar M-x describe-face RET default RET(ou uma face diferente não padrão) e usar M-x rgreppara procurar arquivos .el com tema de cores que contenham os mesmos nomes / valores hexadecimais.

Desculpe - a solução com a procura no buffer de Mensagens não está ajudando. M-x load-theme <colortheme>não imprime nada no buffer de mensagens.
Christian Herenz
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.