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?

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 há 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).]


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.

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.