Як скинути кольорову тему?


25

Коли я випробовую різні кольорові теми, здається, якщо певний елемент не визначений у новій темі, колишнє значення теми зберігається, і це призводить до певних сутичок. Це відбувається в emacs 24, а також у попередніх версіях, що використовують color-theme. Чи є спосіб скинути всі кольори між замовчуванням, щоб кожна тема кольорів виглядала так, як було призначено?

Відповіді:


22

Ви впевнені, що використовуєте кольорові теми, а не спеціальні теми Emacs? Кольорові теми визначаються бібліотекою color-theme.el. Спеціальні теми доступні починаючи з Emacs 24 - і вони не збігаються з кольоровими темами.

  1. Якщо ви використовуєте кольорові теми, то відповідь проста: просто увімкніть псевдокольорову тему з назвою [Reset]. Це повністю скасовує тему: видаляє всі накладені на неї ефекти.

  2. Якщо ви фактично використовуєте власні теми Emacs, то відповідь не така проста. Ви не можете скасувати застосування спеціальної теми. Що ви можете зробити, що дуже допоможе, - це вимкнути кожну власну тему, використовуючи disable-themeїї після ввімкнення та перед ввімкненням іншої спеціальної теми.

    Ось два способи зробити це "напівавтоматично":

    Перегляньте ці оригінальні публікації про те, щоб отримати додаткову інформацію, і побачити питання та інші відповіді на нього на тій же сторінці SO. (Застереження: прийнята відповідь на цій сторінці не є відповіддю на проблему скасування спеціальної теми.)

  3. Майте на увазі, що навіть рішення, описані в №2, не є загальними рішеннями: вони не скасовують застосування спеціальної теми - немає способу це зробити. Тобто, вимкнення користувацької теми не відновлює будь - які нетематичні налаштування (наприклад, зміни обличчя), які ви, можливо, зробили до ввімкнення цієї теми та які були замінені цією темою.

Іншими словами, скасування кольорової теми тривіально; скасування спеціальної теми неможливо. Найкраще, що ви можете зробити для власної теми - це відключити її відносно інших спеціальних тем.

Найкраще посилання на це питання та шляхи перемикання (наприклад, їзда на велосипеді) між кольоровими та спеціальними темами - Колірна сторінка Вікі-сторінки Emacs та Кольорові теми .

І будьте попереджені: у різних місцях є досить багато оманливої ​​інформації про власні теми Emacs. Люди були справедливо схвильовані, що Emacs додав власні теми як функцію в Emacs 24, а деякі з них відразу перейшли до помилкового висновку, що користувацькі теми є заміною кольорових тем. Вони не є. У кожного є деякі переваги. Наприклад, неможливість скасування скасування є головним недоліком користувацьких тем, наприклад.

[ Цей звіт про помилки GNU Emacs - це запит на вдосконалення для усунення неможливості скасувати спеціальну тему (і таким чином відновити попередні налаштування).]


1
Ви також можете додати, що якщо ви вибираєте кольорову тему за допомогою такої команди, color-theme-dark-laptopто вам потрібно вручну зробити знімок, якщо ви хочете повернутися до попередньої теми. Наприклад, (fset 'color-theme-revert (color-theme-make-snapshot))ви дасте команду color-theme-revertповернути. Кнопка [Resert] не працює. (Щоб перевірити, чи я маю рацію, не color-theme-select
видайте

Зверніть увагу, що теми штурвала автоматично відключать інші теми при виборі нової.
окудо

1
@EmacsFodder: Якщо ви говорите про власні теми, недостатньо вимкнути інші теми . Не обов’язково повертатися до початкового стану, який існував до ввімкнення будь-яких спеціальних тем. Ця проблема не існує для кольорових тем - ви можете зробити знімок початкового стану та повернутися до нього. Дивіться цитовану сторінку EmacsWiki та звіт про помилки, що цитуються. Тут немає ніякої чарівної срібної кулі, Шлем чи інше. Саме через (недолік) те, як створювались спеціальні теми.
Дрю

@JSG: Так, щоб мати змогу повернутися до початкового стану, перш ніж ввімкнути будь-які кольорові теми, вам слід створити його знімок (що відповідає псевдокольоровій темі). Це пояснюється на цитованій сторінці EmacsWiki та цитованому звіті про помилки Emacs. Так що так, вам може знадобитися заздалегідь подумати, але принаймні можна повернутися до цього стану. Ця функція відсутня для користувацьких тем - відключення користувацьких тем не поверне вас до початкового стану.
Дрю

Це було для мене цінною інформацією про їхні відмінності, оскільки я ніколи не торкався цієї теми на Емі, тож дякую! Лише заради додаткової та оновленої інформації, станом на липень 2016 року на Emacs 25.2.1, тепер, здається, ви можете зберегти власні налаштування як тему - або, принаймні, Emacs тут дозволить мені це зробити. Крім того, я повинен чітко вказати (в customize-themesінтерфейсі), якщо я хочу ввімкнути більше однієї теми одночасно. Я здогадуюсь, що це можуть бути способами скасування теми, застосованої у випадку, якщо я передумаю. І я також здогадуюсь, що за допомогою деяких Lisp можна було б створити автозавантаження перед будь-якими можливостями.
Чарльз Роберто Канато

-2

Якщо ви вибрали одну із вбудованих тем із M-x customize-themes, просто прокоментуйте рядки, які включають власну тему у вашому ~/.emacs.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.