Emacs selalu meminta untuk mempercayai tema warna saat startup

10

Emacs saya selalu menanyakan apakah harus mempercayai tema warna yang dipilih atau tidak. Saya selalu menjawab ydan ymempercayai dan mengingat pilihan saya. Saya memuat tema warna secara manual:

(load-theme 'my-favourite-theme)

Saya kira ini karena kustomisasi mudah ditempatkan di bawah loading tema berwarna. Apakah ini cara untuk memperbaikinya? Atau haruskah saya mendelegasikan pemuatan tema warna untuk penyesuaian yang mudah juga?

Geradlus_RU
sumber
2
load-themememiliki argumen opsional: (load-theme THEME &optional NO-CONFIRM NO-ENABLE)- Jika digunakan langsung dalam file init Anda, itu harus dipanggil dengan argumen NO-CONFIRM non-nil. . . Dengan kata lain, gunakan: (load-theme 'my-favourite-theme t)
lawlist
1
jadi saya butuh (load-theme 'name t nil)atau hanya (load-theme 'name t)?
Geradlus_RU
2
Argumen opsional yang nilperlu dimasukkan HANYA jika argumen opsional berikutnya adalah non- nil. Misalnya, jika Anda menginginkan argumen opsional pertama nildan argumen opsional kedua t, maka nilargumen pertama diperlukan. Karena argumen opsional kedua adalah nil- Anda dapat menghilangkan atau memasukkannya - tidak ada bedanya. Kadang-kadang saya menggunakan niluntuk argumen opsional ketika tidak ada nilargumen non- opsional berikutnya hanya supaya saya tahu berapa banyak argumen opsional yang mungkin untuk fungsi tertentu - yaitu pengingat visual.
hukum
Yang disarankan @lawlist adalah solusi, bukan solusi. Lebih baik untuk mencari tahu mengapa Anda mendapatkan masalah ini karena dapat menyebabkan masalah lain. Sebenarnya, saya sering melihat masalah ini, jadi saya ingin tahu alasannya.
Malabarba
@Geradlus_RU Jika Anda belum menentukan argumen NO-CONFIRM t, emacs akan menanyakan pertanyaan itu lagi setiap kali setelah paket tema diperbarui (karena .el checksumnya berubah). Apakah itu masalahnya? Jika Anda terus mendapatkan prompt itu setiap kali Anda memulai emacs (bahkan ketika tema .el belum diperbarui), maka pastikan bahwa checksum tema telah disimpan oleh emacs dan juga sedang dibaca oleh emacs saat start-up. Satu skenario yang mungkin adalah bahwa Anda telah menyimpan custom.el sebagai file terpisah (emacs menghafal tema yang aman untuk mereka) tetapi Anda tidak memuat file itu di init.
Kaushal Modi

Jawaban:

10

init.elFile Anda mungkin berisi cuplikan seperti ini:

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

Di antara banyak hal lainnya, cuplikan ini bertanggung jawab untuk menyimpan dan memulihkan custom-safe-themesvariabel. Oleh karena itu, jika ini terjadi pada akhir file init Anda (seperti biasanya terjadi), Anda mungkin menambahkan (load-theme ...)baris Anda di atasnya, yang menjelaskan mengapa Emacs tidak tahu tentang tema aman Anda selama startup.

Cukup pindahkan cuplikan ke bagian atas file init Anda, dan itu akan menyelesaikan masalah Anda.

Malabarba
sumber
4

Saya menggunakan moe-mereka , dan adil

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

akan memuat tema tanpa kesalahan / peringatan / prompt , tetapi jika saya M-x load-themedi dalam Emacs, itu akan meminta sesuatu seperti "memperlakukan tema sebagai aman", dan saya menemukan solusi untuk itu:

(setq custom-safe-themes t)

Saya tidak tahu apakah ini akan menyelesaikan masalah Anda, tetapi Anda dapat mencobanya.

CodyChan
sumber