Emacs demande toujours de faire confiance au thème de la couleur au démarrage

10

Mon Emacs me demande toujours s'il doit faire confiance au thème de couleur sélectionné ou non. Je réponds toujours yet yfaire confiance et me souviens de mon choix. Je charge le thème des couleurs manuellement:

(load-theme 'my-favourite-theme)

Je suppose que c'est parce que les personnalisations faciles sont placées sous le chargement du thème de couleur. Est-ce un moyen de le réparer? Ou dois-je également déléguer le chargement du thème de couleur à des personnalisations faciles?

Geradlus_RU
la source
2
load-themea des arguments facultatifs: (load-theme THEME &optional NO-CONFIRM NO-ENABLE)- S'il est utilisé directement dans votre fichier init, il doit être appelé avec un argument NO-CONFIRM non nul. . . En d'autres termes, utilisez: (load-theme 'my-favourite-theme t)
lawlist
1
donc j'ai besoin (load-theme 'name t nil)ou juste (load-theme 'name t)?
Geradlus_RU
2
Les arguments facultatifs qui nildoivent être inclus UNIQUEMENT si un argument facultatif suivant est non nil. Par exemple, si vous vouliez le premier argument optionnel pour être nilet le second argument optionnel pour être t, alors nilqu'il faudrait pour que le premier argument. Puisque le deuxième argument facultatif est nil- vous pouvez l'omettre ou l'inclure - cela ne fait aucune différence. Parfois, j'utilise nilpour des arguments facultatifs lorsqu'il n'y a pas d' nilargument non facultatif ultérieur juste pour que je sache combien d'arguments facultatifs sont possibles pour une fonction particulière - c'est-à-dire un rappel visuel.
lawlist
Ce que @lawlist suggère est une solution de contournement, pas une solution. Il est préférable de comprendre pourquoi vous rencontrez ce problème car il peut éventuellement provoquer d'autres problèmes. En fait, j'ai vu ce problème beaucoup, donc j'aimerais beaucoup en connaître la raison.
Malabarba
@Geradlus_RU Si vous n'avez pas spécifié l'argument NO-CONFIRM t, emacs vous posera à nouveau cette question après la mise à jour de ce package de thème (car sa somme de contrôle .el change). Est-ce le cas? Si vous continuez à recevoir ces invites chaque fois que vous démarrez emacs (même lorsque le thème .el n'a pas été mis à jour), assurez-vous que la somme de contrôle du thème est enregistrée par emacs et également lue par emacs au démarrage. Un scénario possible est que vous avez enregistré le fichier custom.el en tant que fichier séparé (emacs mémorise les thèmes sécurisés dans ceux-ci) mais que vous ne chargez pas ce fichier dans init.
Kaushal Modi

Réponses:

10

Votre init.elfichier contient probablement un extrait comme celui-ci:

(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 de nombreuses autres choses, cet extrait est responsable de l'enregistrement et de la restauration de la custom-safe-themesvariable. Par conséquent, si cela se trouve à la fin de votre fichier init (comme c'est généralement le cas), vous avez probablement ajouté votre (load-theme ...)ligne au-dessus, ce qui explique pourquoi Emacs ne connaît pas vos thèmes sécurisés au démarrage.

Déplacez simplement cet extrait en haut de votre fichier init, et cela devrait résoudre votre problème.

Malabarba
la source
4

J'utilise moe-them , et juste

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

chargera le thème sans erreur / avertissement / invite , mais si je suis M-x load-themedans Emacs, cela invitera quelque chose comme "traiter le thème comme sûr", et j'ai trouvé une solution pour cela:

(setq custom-safe-themes t)

Je ne sais pas si cela résoudra votre problème, mais vous pouvez l'essayer.

CodyChan
la source