Como redefinir o tema de cores?

25

Quando estou tentando diferentes temas de cores, parece que se um elemento específico não estiver definido no novo tema, o valor antigo do tema será retido e isso causará alguns confrontos. Isso acontece no emacs 24 e também nas versões anteriores usando color-theme. Existe uma maneira de redefinir todas as cores no padrão para que cada tema de cores pareça como o esperado?

hatmatrix
fonte

Respostas:

22

Tem certeza de que está usando temas de cores e não temas personalizados do Emacs? Os temas de cores são definidos pela biblioteca color-theme.el. Temas personalizados estão disponíveis partida com o Emacs 24 - e eles são não o mesmo que temas de cores.

  1. Se você estiver usando temas de cores , a resposta é simples: basta ativar o pseudo-tema de cores chamado [Reset]. Isso desfaz completamente o tema: remove todos os efeitos que ele impôs.

  2. Se você está realmente usando temas personalizados do Emacs , a resposta não é tão simples. Você não pode desfazer a aplicação de um tema personalizado. O que você pode fazer, o que ajudará bastante, é desativar cada tema personalizado, usando disable-theme, após ter sido ativado e antes de ativar outro tema personalizado.

    Aqui estão duas maneiras de fazer isso "semi-automaticamente":

    Veja as postagens originais do SO para obter um pouco mais de informações e veja a pergunta e outras respostas na mesma página do SO. (Advertência: a resposta aceita nessa página não é uma resposta ao problema de desfazer um tema personalizado.)

  3. Esteja ciente de que mesmo as soluções descritas em # 2 não são soluções gerais: elas não desfazem a aplicação de um tema personalizado - não como fazer isso. Ou seja, a desativação de um tema personalizado não restaura quaisquer não-temáticos personalizações (por exemplo, mudanças de rosto) que você poderia ter feito antes de ativar esse tema e que foram substituídas por esse tema.

Em outras palavras, desfazer um tema de cores é trivial; desfazer um tema personalizado é impossível. O melhor que você pode fazer para um tema personalizado é desativá-lo em relação a outros temas personalizados.

A melhor referência para esta pergunta e para maneiras de alternar (por exemplo, andar de bicicleta) entre os temas coloridos e personalizados é a página Wiki do Emacs, Temas personalizados e temas .

E esteja avisado: há uma quantidade razoável de informações enganosas em vários lugares sobre os temas personalizados do Emacs a esse respeito. As pessoas estavam legitimamente empolgadas com o fato de o Emacs ter adicionado temas personalizados como um recurso no Emacs 24, e alguns deles chegaram imediatamente à conclusão equivocada de que os temas personalizados eram um substituto para os temas de cores. Eles não são. Cada um tem algumas vantagens. Não poder desfazer é uma grande desvantagem de temas personalizados, por exemplo.

[ Este relatório de erros do GNU Emacs é uma solicitação de aprimoramento para remediar a incapacidade de desfazer um tema personalizado (e, assim, restaurar personalizações anteriores).]

Desenhou
fonte
1
Você também pode adicionar que, se você selecionar um tema de cores usando um comando como esse color-theme-dark-laptop, precisará manualmente fazer uma captura instantânea se desejar reverter para o tema anterior. Por exemplo (fset 'color-theme-revert (color-theme-make-snapshot)), você receberá o comando color-theme-revertde reverter. O botão [Resert] não funcionará de outra forma. (Para testar se estou certo, não emitir o comando color-theme-selectantes de alterar o tema, pois isso fará com que o instantâneo faltando para você)
user4514
Observe que os temas de leme desativarão automaticamente outros temas ao selecionar um novo.
Ocodo 02/07
1
@EmacsFodder: se você está falando sobre temas personalizados, desabilitar outros temas não é suficiente . Você não pode necessariamente retornar ao estado inicial que existia antes de ativar qualquer tema personalizado. Esse problema não existe para temas de cores - você pode tirar uma captura instantânea do estado inicial e retornar a ele. Veja a página citada do EmacsWiki e o relatório de bug citado. Não há bala mágica de prata aqui, Helm ou não. É por causa de (uma falha) na maneira como os temas personalizados foram projetados.
Drew
@JSG: Sim, para poder retornar ao estado inicial, antes de ativar qualquer tema de cor, você deve criar um instantâneo (o que equivale a um tema de pseudo-cor). Isso é explicado na página citada do EmacsWiki e no relatório de bug do citado. Então, sim, talvez seja necessário pensar no futuro, mas pelo menos é possível voltar a esse estado. Este recurso está ausente para temas personalizados - a desativação de temas personalizados não o leva de volta ao estado inicial.
Tirou
Esta foi uma informação valiosa para mim sobre suas diferenças, como eu nunca toquei no assunto antes no Emas, então obrigado! Apenas para obter informações adicionais e atualizadas, a partir de julho de 2016 no Emacs 25.2.1, agora parece que você também pode salvar suas próprias configurações como um tema - ou pelo menos, o Emacs aqui, deixe-me fazê-lo. Além disso, devo indicar explicitamente (na customize-themesinterface do usuário) se quero ativar mais de um tema ao mesmo tempo. Suponho que essas podem ser formas de desfazer um tema, caso eu mude de idéia. E também acho que, com alguns Lisp, é possível manter um backup automático antes de qualquer ativação.
Charles Roberto Canato
-2

Se você selecionou um dos temas internos M-x customize-themes, basta comentar as linhas que ativam o tema personalizado no seu ~/.emacs.

justinp
fonte