Come ripristinare il tema colore?


25

Quando sto provando diversi temi di colore, sembra che se un nuovo elemento non è definito nel nuovo tema, il vecchio valore del tema viene mantenuto, e questo porta ad alcuni scontri. Questo succede in emacs 24 e anche nelle versioni precedenti usando color-theme. C'è un modo per ripristinare tutti i colori tra quelli predefiniti in modo che ciascun tema di colore appaia come previsto?

Risposte:


22

Sei sicuro di utilizzare temi a colori e non temi personalizzati di Emacs? I temi di colore sono definiti dalla libreria color-theme.el. I temi personalizzati sono disponibili a partire con Emacs 24 - e sono , non lo stesso di temi di colore.

  1. Se stai usando temi di colore , la risposta è semplice: basta abilitare lo pseudo tema di colori chiamato [Reset]. Questo annulla completamente il tema: rimuove tutti gli effetti che ha imposto.

  2. Se stai effettivamente utilizzando temi personalizzati Emacs , la risposta non è così semplice. Non è possibile annullare l'applicazione di un tema personalizzato. Quello che puoi fare, che aiuterà molto, è disabilitare ogni tema personalizzato, usando disable-theme, dopo che è stato abilitato e prima di abilitare un altro tema personalizzato.

    Ecco due modi per farlo "semi-automaticamente":

    Vedi quei post SO originali per qualche informazione in più, e vedi la domanda e altre risposte sulla stessa pagina SO. (Avvertenza: la risposta accettata su quella pagina non è una risposta al problema di annullare un tema personalizzato.)

  3. Tieni presente che anche le soluzioni descritte nel n. 2 non sono soluzioni generali: non annullano l'applicazione di un tema personalizzato - non c'è modo di farlo. Cioè, la disabilitazione di un tema personalizzato non ripristina alcun non tema le personalizzazioni (ad esempio, cambiamenti viso) che si potrebbe effettuate prima di attivare quel tema e che sono stati sovrascritti da quel tema.

In altre parole, annullare un tema di colore è banale; annullare un tema personalizzato è impossibile. Il meglio che puoi fare per un tema personalizzato è disabilitarlo rispetto ad altri temi personalizzati.

Il miglior riferimento per questa domanda e per i modi di cambiare (ad esempio il ciclismo) tra temi a colori e personalizzati è la pagina Wiki di Emacs a colori e temi personalizzati .

E attenzione: c'è una buona quantità di informazioni fuorvianti in vari punti sui temi personalizzati di Emacs al riguardo. La gente era giustamente eccitata dal fatto che Emacs aggiungesse temi personalizzati come funzionalità in Emacs 24, e alcuni di loro saltarono immediatamente alla conclusione errata che i temi personalizzati fossero un sostituto dei temi di colore. Non sono. Ognuno ha alcuni vantaggi. Non poter annullare è uno dei principali svantaggi dei temi personalizzati, ad esempio.

[ Questa segnalazione di bug di GNU Emacs è una richiesta di miglioramento per rimediare all'impossibilità di annullare un tema personalizzato (e quindi ripristinare le personalizzazioni precedenti).]


1
Puoi anche aggiungere che se selezioni un tema colore usando un comando come color-theme-dark-laptopallora devi fare manualmente uno snapshot se vuoi tornare al tema precedente. Ad esempio, (fset 'color-theme-revert (color-theme-make-snapshot))ti darà il comando color-theme-revertdi ripristinare. Il pulsante [Resert] non funzionerà diversamente. (Per verificare se ho ragione, non emettere il comando color-theme-selectprima di modificare il tema, poiché ciò renderà l'istantanea mancante per te)
user4514

Nota: i temi del timone disabiliteranno automaticamente altri temi quando ne selezioni uno nuovo.
Ocodo

1
@EmacsFodder: se stai parlando di temi personalizzati, disabilitare altri temi non è sufficiente . Non puoi necessariamente tornare allo stato iniziale esistente prima di abilitare i temi personalizzati. Questo problema non esiste per i temi di colore: è possibile acquisire un'istantanea dello stato iniziale e tornare ad esso. Vedi la pagina EmacsWiki citata e la segnalazione di bug citata. Non c'è nessun proiettile d'argento magico qui, Helm o altro. È a causa di (un difetto) il modo in cui sono stati progettati i temi personalizzati.
Estratto il

@JSG: Sì, per poter tornare allo stato iniziale, prima di abilitare qualsiasi tema di colore, è necessario crearne uno (che equivale a un tema di colore pseudo). Ciò è spiegato nella citata pagina EmacsWiki e nella citata segnalazione di bug di Emacs. Quindi sì, potresti dover pensare in anticipo, ma almeno è possibile tornare a quello stato. Questa funzione non è presente per i temi personalizzati: la disabilitazione dei temi personalizzati non riporta allo stato iniziale.
Estratto il

Queste sono state informazioni preziose per me sulle loro differenze, dato che non ho mai toccato l'argomento prima su Emas, quindi grazie! Solo per motivi di informazioni aggiuntive e aggiornate, a partire da luglio 2016 su Emacs 25.2.1, ora sembra che tu possa anche salvare le tue impostazioni come tema - o almeno, Emacs qui mi ha permesso di farlo. Inoltre, devo indicare esplicitamente (sull'interfaccia customize-themesutente) se voglio abilitare più di un tema contemporaneamente. Immagino che questi potrebbero essere modi di annullare un tema applicato nel caso in cui cambi idea. E sto anche supponendo che, con alcuni Lisp, si potrebbe mantenere un backup automatico prima di qualsiasi abilitazione.
Charles Roberto Canato,

-2

Se hai selezionato uno dei temi integrati da M-x customize-themes, commenta semplicemente le righe che abilitano il tema personalizzato nel tuo ~/.emacs.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.