O Emacs sempre pede para confiar no tema da cor na inicialização

10

Meu Emacs sempre me pergunta se deve confiar no tema de cores selecionado ou não. Eu sempre respondo ye yconfio e lembro da minha escolha. Estou carregando o tema de cores manualmente:

(load-theme 'my-favourite-theme)

Suponho que isso ocorra porque personalizações fáceis são colocadas abaixo do carregamento do tema de cores. Existe alguma maneira de consertar isso? Ou devo também delegar o carregamento do tema colorido para personalizações fáceis também?

Geradlus_RU
fonte
2
load-themepossui argumentos opcionais: (load-theme THEME &optional NO-CONFIRM NO-ENABLE)- Se usado diretamente no seu arquivo init, ele deve ser chamado com um argumento NO-CONFIRM não nulo. . . Em outras palavras, use: (load-theme 'my-favourite-theme t)
lawlist
11
então eu preciso (load-theme 'name t nil)ou apenas (load-theme 'name t)?
Geradlus_RU 23/03
2
Argumentos opcionais que nilprecisam ser incluídos SOMENTE se um argumento opcional subsequente for não nil. Por exemplo, se você desejasse que o primeiro argumento opcional fosse nile o segundo argumento opcional t, nilseria necessário para o primeiro argumento. Como o segundo argumento opcional é nil- você pode omitir ou incluí-lo - não faz diferença. Às vezes, uso nilpara argumentos opcionais quando não há nilum argumento não opcional subsequente, apenas para saber quantos argumentos opcionais são possíveis para uma função específica - ou seja, um lembrete visual.
lawlist
O que o @lawlist está sugerindo é uma solução alternativa, não uma solução. É preferível descobrir por que você está tendo esse problema, pois ele pode causar outros problemas. Na verdade, eu já vi esse problema muito, então gostaria muito de saber o motivo.
Malabarba 23/03
@Geradlus_RU Se você não especificou o argumento NO-CONFIRM t, o emacs fará essa pergunta novamente a cada vez que o pacote for atualizado (porque a soma de verificação .el muda). É esse o caso? Se você continuar recebendo essas solicitações sempre que iniciar o emacs (mesmo quando o tema .el não tiver sido atualizado), verifique se a soma de verificação do tema foi salva pelo emacs e também lida pelo emacs durante a inicialização. Um cenário possível é que você salvou o custom.el como um arquivo separado (o emacs está memorizando os temas seguros para eles), mas você não está carregando esse arquivo no init.
Kaushal Modi

Respostas:

10

Seu init.elarquivo provavelmente contém um trecho como este:

(custom-set-variables
 ;; custom-set-variables was added by Custom.
 ;; If you edit it by hand, you could mess it up, so be careful.
 ;; Your init file should contain only one such instance.
 ;; If there is more than one, they won't work right.
 ...)

Entre muitas outras coisas, esse trecho é responsável por salvar e restaurar a custom-safe-themesvariável. Portanto, se isso acontecer no final do seu arquivo init (como geralmente é o caso), você provavelmente adicionou sua (load-theme ...)linha acima dele, o que explica por que o Emacs não conhece seus temas seguros durante a inicialização.

Simplesmente mova esse trecho para o topo do seu arquivo init, e isso deve resolver seu problema.

Malabarba
fonte
4

Eu estou usando moe-eles , e apenas

(require 'moe-theme)
(moe-dark)

carregará o tema sem erro / aviso / prompt , mas se eu M-x load-themedentro do Emacs, ele solicitará algo como "trate o tema como seguro", e eu descobri uma solução para isso:

(setq custom-safe-themes t)

Não sei se isso resolverá o seu problema, mas você pode tentar.

CodyChan
fonte