Emacs bitten beim Start immer darum, dem Farbthema zu vertrauen

10

Mein Emacs fordert mich immer auf, ob er dem ausgewählten Farbthema vertrauen soll oder nicht. Ich antworte immer yund yvertraue und erinnere mich an meine Wahl. Ich lade das Farbthema manuell:

(load-theme 'my-favourite-theme)

Ich nehme an, das liegt daran, dass einfache Anpassungen unter dem Laden von Farbthemen platziert werden. Ist es eine Möglichkeit, das Problem zu beheben? Oder sollte ich das Laden von Farbthemen auch einfach an einfache Anpassungen delegieren?

Geradlus_RU
quelle
2
load-themehat optionale Argumente: (load-theme THEME &optional NO-CONFIRM NO-ENABLE)- Wenn es direkt in Ihrer Init-Datei verwendet wird, sollte es mit einem Nicht-Null-NO-CONFIRM-Argument aufgerufen werden. . . Mit anderen Worten, verwenden Sie: (load-theme 'my-favourite-theme t)
Lawlist
1
also brauche ich (load-theme 'name t nil)oder nur (load-theme 'name t)?
Geradlus_RU
2
Optionale Argumente, nildie NUR enthalten sein müssen, wenn ein nachfolgendes optionales Argument nicht vorhanden ist nil. Wenn Sie das erste optionale Argument sein , wollen zum Beispiel nilund das zweite optionale Argument sein t, dann nilwäre notwendig , um für das erste Argument. Da das zweite optionale Argument nil- Sie können es weglassen oder einschließen - lautet , macht es keinen Unterschied. Manchmal verwende ich nilfür optionale Argumente, wenn es kein nachfolgendes nicht niloptionales Argument gibt, nur damit ich weiß, wie viele optionale Argumente für eine bestimmte Funktion möglich sind - dh eine visuelle Erinnerung.
Lawlist
Was @lawlist vorschlägt, ist eine Problemumgehung, keine Lösung. Es ist vorzuziehen, herauszufinden, warum Sie dieses Problem bekommen, da es möglicherweise andere Probleme verursachen kann. Tatsächlich habe ich dieses Problem schon oft gesehen, daher würde ich gerne den Grund wissen.
Malabarba
@Geradlus_RU Wenn Sie das Argument NO-CONFIRM nicht angegeben haben t, werden Sie von emacs jedes Mal nach der Aktualisierung dieses Themenpakets erneut gefragt (da sich die .el-Prüfsumme ändert). Ist das der Fall? Wenn Sie diese Eingabeaufforderungen jedes Mal erhalten, wenn Sie Emacs starten (auch wenn das Thema .el nicht aktualisiert wurde), stellen Sie sicher, dass die Theme-Prüfsumme von Emacs gespeichert und beim Start auch von Emacs gelesen wird. Ein mögliches Szenario ist, dass Sie die Datei custom.el als separate Datei gespeichert haben (emacs speichert die sicheren Themen für diese), aber Sie laden diese Datei nicht in init.
Kaushal Modi

Antworten:

10

Ihre init.elDatei enthält wahrscheinlich einen Ausschnitt wie diesen:

(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.
 ...)

Dieses Snippet ist unter anderem für das Speichern und Wiederherstellen der custom-safe-themesVariablen verantwortlich. Wenn sich dies am Ende Ihrer Init-Datei befindet (wie dies normalerweise der Fall ist), haben Sie wahrscheinlich Ihre (load-theme ...)Zeile darüber hinzugefügt , was erklärt, warum Emacs beim Start nichts über Ihre sicheren Themen weiß.

Verschieben Sie dieses Snippet einfach an den Anfang Ihrer Init-Datei, und das sollte Ihr Problem lösen.

Malabarba
quelle
4

Ich benutze moe-them und nur

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

lädt das Thema ohne Fehler / Warnung / Eingabeaufforderung , aber wenn ich mich M-x load-themein Emacs befinde, wird so etwas wie "Behandle das Thema als sicher" angezeigt, und ich habe eine Lösung dafür gefunden:

(setq custom-safe-themes t)

Ich weiß nicht, ob dies Ihr Problem lösen wird, aber Sie können es versuchen.

CodyChan
quelle