Bagaimana cara mereset tema warna?

25

Ketika saya mencoba tema warna yang berbeda, sepertinya jika elemen tertentu tidak didefinisikan dalam tema baru, nilai tema lama dipertahankan, dan ini menyebabkan beberapa bentrok. Ini terjadi pada emacs 24 dan juga versi sebelumnya yang menggunakan color-theme. Apakah ada cara untuk mengatur ulang semua warna di antara ke default sehingga setiap tema warna terlihat seperti yang dimaksudkan?

hatmatrix
sumber

Jawaban:

22

Apakah Anda yakin menggunakan tema warna dan bukan tema khusus Emacs? Tema warna ditentukan oleh perpustakaan color-theme.el. Tema khusus tersedia mulai dengan Emacs 24 - dan mereka tidak sama dengan tema warna.

  1. Jika Anda menggunakan tema warna maka jawabannya sederhana: cukup aktifkan tema warna semu bernama [Reset]. Itu benar-benar membatalkan tema: menghapus semua efek yang dipaksakan.

  2. Jika Anda sebenarnya menggunakan tema khusus Emacs maka jawabannya tidak begitu sederhana. Anda tidak dapat membatalkan aplikasi tema khusus. Apa yang dapat Anda lakukan, yang akan banyak membantu, adalah menonaktifkan setiap tema khusus, menggunakan disable-theme, setelah itu diaktifkan dan sebelum mengaktifkan tema kustom lainnya .

    Berikut adalah dua cara untuk melakukan ini "semi-otomatis":

    Lihat posting SO asli tersebut untuk info lebih lanjut, dan lihat pertanyaan dan jawaban lainnya di halaman SO yang sama. (Peringatan: Jawaban yang diterima pada halaman itu bukanlah jawaban untuk masalah penguraian tema khusus.)

  3. Ketahuilah bahwa bahkan solusi yang dijelaskan dalam # 2 bukanlah solusi umum: mereka tidak membatalkan penerapan tema khusus - tidak ada cara untuk melakukan itu. Yaitu, menonaktifkan tema khusus tidak mengembalikan kustomisasi non-tema apa pun (misalnya, perubahan wajah) yang mungkin Anda buat sebelum mengaktifkan tema itu dan yang ditimpa oleh tema itu.

Dengan kata lain, membatalkan tema warna itu sepele; membatalkan tema khusus tidak mungkin. Yang terbaik yang dapat Anda lakukan untuk tema khusus adalah menonaktifkannya relatif terhadap tema khusus lainnya.

Referensi terbaik untuk pertanyaan ini dan cara beralih (misalnya bersepeda) di antara tema warna dan kustom adalah halaman Wiki Emacs Warna dan Tema Kustom .

Dan diperingatkan sebelumnya: Ada cukup banyak informasi yang menyesatkan di berbagai tempat tentang tema khusus Emacs dalam hal ini. Orang-orang sangat senang bahwa Emacs menambahkan tema khusus sebagai fitur dalam Emacs 24, dan beberapa dari mereka langsung melompat ke kesimpulan yang salah bahwa tema kustom adalah pengganti tema warna. Mereka tidak. Masing-masing memiliki beberapa keunggulan. Misalnya, tidak dapat membatalkan adalah kelemahan utama tema khusus.

[ Laporan bug GNU Emacs ini adalah permintaan tambahan untuk memperbaiki ketidakmampuan untuk membatalkan tema khusus (dan dengan demikian mengembalikan kustomisasi sebelumnya).]

Drew
sumber
1
Anda juga dapat menambahkan, bahwa jika Anda memilih tema warna menggunakan perintah seperti color-theme-dark-laptopmaka Anda perlu membuat snapshot secara manual jika Anda ingin kembali ke tema sebelumnya. Misalnya (fset 'color-theme-revert (color-theme-make-snapshot))akan memberi Anda perintah color-theme-revertuntuk kembali. Tombol [Resert] tidak akan berfungsi sebaliknya. (Untuk menguji apakah saya benar, jangan mengeluarkan perintah color-theme-selectsebelum Anda mengubah tema, karena ini akan membuat snapshot yang hilang untuk Anda)
user4514
Harap dicatat, helm-tema akan secara otomatis menonaktifkan tema lain saat memilih yang baru.
ocodo
1
@EmacsFodder: Jika Anda berbicara tentang tema khusus maka menonaktifkan tema lain tidak cukup . Anda tidak dapat selalu kembali ke kondisi awal yang ada sebelum mengaktifkan tema khusus apa pun. Masalah ini tidak ada untuk tema warna - Anda dapat mengambil potret keadaan awal dan kembali ke sana. Lihat halaman EmacsWiki yang dikutip dan laporan bug yang dikutip. Tidak ada peluru perak ajaib di sini, Helm atau sebaliknya. Itu karena (cacat dalam) cara tema khusus dirancang.
Drew
@ JSG: Ya, untuk dapat kembali ke keadaan awal, sebelum mengaktifkan tema warna apa pun, Anda harus membuat potretnya (yang sama dengan tema warna semu). Itu dijelaskan di halaman EmacsWiki yang dikutip dan laporan bug Emacs yang dikutip. Jadi ya, Anda mungkin perlu berpikir ke depan, tetapi setidaknya mungkin untuk kembali ke keadaan itu. Fitur ini tidak ada untuk tema khusus - menonaktifkan tema khusus tidak akan membawa Anda kembali ke keadaan awal.
Drew
Ini adalah info berharga bagi saya tentang perbedaan mereka, karena saya belum pernah menyentuh subjek sebelumnya di Emas, jadi terima kasih! Hanya demi info tambahan dan terbaru, pada Juli 2016 di Emacs 25.2.1, sekarang tampaknya Anda dapat menyimpan pengaturan Anda sendiri sebagai tema - atau setidaknya, Emacs di sini biarkan saya melakukannya. Juga, saya harus secara eksplisit menunjukkan (pada customize-themesUI) jika saya ingin mengaktifkan lebih dari satu tema pada saat yang sama. Saya menduga itu mungkin cara untuk membatalkan tema yang berlaku jika saya berubah pikiran. Dan saya juga menduga bahwa, dengan beberapa Lisp, seseorang dapat menyimpan cadangan otomatis sebelum pemberdayaan apa pun.
Charles Roberto Canato
-2

Jika Anda memilih salah satu dari tema bawaan M-x customize-themes, cukup beri komentar pada garis yang memungkinkan tema khusus di Anda ~/.emacs.

justinp
sumber