Emacs zawsze prosi o zaufanie do motywu koloru podczas uruchamiania

10

Mój Emacs zawsze pyta mnie, czy powinien ufać wybranemu motywowi kolorów, czy nie. I zawsze odpowiedzieć yi yzaufać i pamiętam mojego wyboru. Ładuję motyw kolorów ręcznie:

(load-theme 'my-favourite-theme)

Przypuszczam, że dzieje się tak, ponieważ łatwe ładowanie jest umieszczone poniżej ładowania motywu kolorowego. Czy to jakiś sposób to naprawić? A może powinienem po prostu przekazać ładowanie motywu kolorów również łatwym dostosowaniom?

Geradlus_RU
źródło
2
load-themema opcjonalne argumenty: (load-theme THEME &optional NO-CONFIRM NO-ENABLE)- Jeśli zostanie użyty bezpośrednio w twoim pliku init, powinien zostać wywołany z innym argumentem NO-CONFIRM. . . Innymi słowy, użyj: (load-theme 'my-favourite-theme t)
prawnika z
1
więc potrzebuję (load-theme 'name t nil)czy po prostu (load-theme 'name t)?
Geradlus_RU
2
Argumenty opcjonalne, które nilnależy uwzględnić TYLKO, jeśli kolejny opcjonalny argument nie jest nil. Na przykład, jeśli chciałbyś, aby pierwszym opcjonalnym argumentem był, nila drugim opcjonalnym argumentem t, nilbyłby potrzebny dla pierwszego argumentu. Ponieważ drugi opcjonalny argument to nil- możesz go pominąć lub dołączyć - nie ma znaczenia. Czasami używam nilopcjonalnych argumentów, gdy nie ma kolejnych nie nilopcjonalnych argumentów tylko po to, aby wiedzieć, ile opcjonalnych argumentów jest możliwych dla określonej funkcji - tj. Przypomnienie wizualne.
prawnik
To, co sugeruje @lawlist, to obejście, a nie rozwiązanie. Lepiej jest dowiedzieć się, dlaczego występuje ten problem, ponieważ może to powodować inne problemy. W rzeczywistości często widziałem ten problem, więc bardzo chciałbym poznać przyczynę.
Malabarba
@Geradlus_RU Jeśli nie podałeś argumentu BEZ POTWIERDZENIA t, emacs będzie zadawał to pytanie za każdym razem po aktualizacji pakietu motywu (ponieważ zmienia się suma kontrolna .el). Czy tak jest w przypadku? Jeśli otrzymujesz te monity za każdym razem, gdy uruchamiasz emacsa (nawet jeśli motyw .el nie został zaktualizowany), upewnij się, że suma kontrolna motywu została zapisana przez emacsa, a także czytana przez emacsa podczas uruchamiania. Jednym z możliwych scenariuszy jest zapisanie pliku custom.el jako osobnego pliku (emacs zapamiętuje w nim bezpieczne motywy), ale nie ładujesz tego pliku w init.
Kaushal Modi

Odpowiedzi:

10

Twój init.elplik prawdopodobnie zawiera taki fragment kodu:

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

Ten fragment kodu odpowiada między innymi za zapisywanie i przywracanie custom-safe-themeszmiennej. Dlatego jeśli tak się dzieje na końcu pliku init (jak to zwykle bywa), prawdopodobnie dodałeś (load-theme ...)linię powyżej, co wyjaśnia, dlaczego Emacs nie wie o twoich bezpiecznych motywach podczas uruchamiania.

Po prostu przenieś ten fragment na początek pliku init, co powinno rozwiązać Twój problem.

Malabarba
źródło
4

Używam moe-im i tylko

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

załaduje motyw bez błędu / ostrzeżenia / monitu , ale jeśli będę M-x load-themew Emacsie, wyświetli monit „traktuj motyw jako bezpieczny” i znalazłem rozwiązanie tego problemu:

(setq custom-safe-themes t)

Nie wiem, czy to rozwiąże twój problem, ale możesz spróbować.

CodyChan
źródło