¿Cómo restablecer el tema de color?

25

Cuando estoy probando diferentes temas de color, parece que si un elemento en particular no está definido en el nuevo tema, el valor del tema anterior se retiene, y esto lleva a un poco de conflicto. Esto sucede en emacs 24 y también en versiones anteriores con color-theme. ¿Hay alguna manera de restablecer todos los colores intermedios a los predeterminados para que cada tema de color se vea como se esperaba?

hatmatrix
fuente

Respuestas:

22

¿Está seguro de que está utilizando temas de color y no temas personalizados de Emacs? Los temas de color están definidos por la biblioteca color-theme.el. Los temas personalizados están disponibles a partir de Emacs 24, y no son lo mismo que los temas de color.

  1. Si está utilizando temas de color , la respuesta es simple: simplemente habilite el pseudo tema de color llamado [Reset]. Eso deshace completamente el tema: elimina todos los efectos que impuso.

  2. Si de hecho está utilizando temas personalizados de Emacs , la respuesta no es tan simple. No puede deshacer la aplicación de un tema personalizado. Lo que puede hacer, lo que ayudará mucho, es deshabilitar cada tema personalizado, usando disable-theme, después de que se haya habilitado y antes de habilitar otro tema personalizado.

    Aquí hay dos formas de hacer esto "semiautomáticamente":

    Vea esas publicaciones SO originales para obtener un poco más de información, y vea la pregunta y otras respuestas en la misma página SO. (Advertencia: la respuesta aceptada en esa página no es una respuesta al problema de deshacer un tema personalizado).

  3. Tenga en cuenta que incluso las soluciones descritas en el n. ° 2 no son soluciones generales: no deshacen la aplicación de un tema personalizado; no hay forma de hacerlo. Es decir, desactivando un tema personalizado no restaura ningún no-tema personalizaciones (por ejemplo, cambios de cara) que podría haber hecho antes de habilitar ese tema y que fueron anulados por ese tema.

En otras palabras, deshacer un tema de color es trivial; deshacer un tema personalizado es imposible. Lo mejor que puede hacer para un tema personalizado es deshabilitarlo en relación con otros temas personalizados.

La mejor referencia para esta pregunta y para las formas de cambiar (p. Ej., Ciclismo) entre los colores y los temas personalizados es la página Wiki de Emacs Color y temas personalizados .

Y tenga cuidado: hay una gran cantidad de información engañosa en varios lugares sobre temas personalizados de Emacs a este respecto. La gente estaba realmente entusiasmada de que Emacs agregara temas personalizados como una característica en Emacs 24, y algunos de ellos saltaron inmediatamente a la conclusión errónea de que los temas personalizados eran un reemplazo para los temas de color. No son. Cada uno tiene algunas ventajas. No poder deshacer es una desventaja importante de los temas personalizados, por ejemplo.

[ Este informe de error de GNU Emacs es una solicitud de mejora para remediar la incapacidad de deshacer un tema personalizado (y así restaurar las personalizaciones anteriores).]

Dibujó
fuente
1
También podría agregar, que si selecciona un tema de color usando un comando como color-theme-dark-laptopentonces, debe hacer una instantánea manualmente si desea volver al tema anterior. Por ejemplo, (fset 'color-theme-revert (color-theme-make-snapshot))le dará la orden color-theme-revertde revertir. El botón [Resert] no funcionará de otra manera. (Para comprobar si estoy en lo cierto, no emita el comando color-theme-selectantes de cambiar el tema, ya que esto hará la instantánea que falta para usted)
user4514
Tenga en cuenta que helm-themes deshabilitará automáticamente otros temas al seleccionar uno nuevo.
ocodo
1
@EmacsFodder: si está hablando de temas personalizados, deshabilitar otros temas no es suficiente . No necesariamente puede volver al estado inicial que existía antes de habilitar cualquier tema personalizado. Este problema no existe para los temas de color: puede tomar una instantánea del estado inicial y volver a él. Consulte la página de EmacsWiki citada y el informe de error citado. No hay una bala de plata mágica aquí, Helm o de otro tipo. Se debe a (una falla) en la forma en que se diseñaron los temas personalizados.
Dibujó el
@JSG: Sí, para poder volver al estado inicial, antes de habilitar cualquier tema de color, debe crear una instantánea del mismo (que equivale a un tema de pseudo color). Eso se explica en la página de EmacsWiki citada y el informe de error de Emacs citado. Entonces, sí, es posible que deba pensar con anticipación, pero al menos es posible volver a ese estado. Falta esta característica para los temas personalizados: deshabilitar los temas personalizados no lo lleva de regreso al estado inicial.
Dibujó el
Esta fue una información valiosa para mí sobre sus diferencias, ya que nunca he tocado el tema antes en Emas, ¡así que gracias! Solo por información adicional y actualizada, a partir de julio de 2016 en Emacs 25.2.1, ahora parece que también puede guardar su propia configuración como tema, o al menos, Emacs aquí me deja hacerlo. Además, debo indicar explícitamente (en la customize-themesinterfaz de usuario) si deseo habilitar más de un tema al mismo tiempo. Supongo que esas podrían ser formas de deshacer la aplicación de un tema en caso de que cambie de opinión. Y también supongo que, con algunos Lisp, uno podría mantener una copia de seguridad automática antes de cualquier habilitación.
Charles Roberto Canato
-2

Si seleccionó uno de los temas integrados de M-x customize-themes, simplemente comente las líneas que habilitan el tema personalizado en su ~/.emacs.

justinp
fuente