Вы уверены, что используете цветовые темы, а не пользовательские темы Emacs? Цветовые темы определяются библиотекой color-theme.el
. Пользовательские темы доступны начиная с Emacs 24 - и они не совпадают с цветными темами.
Если вы используете цветовые темы, тогда ответ прост: просто включите псевдо-цветовую тему с именем [Reset]
. Это полностью отменяет тему: удаляет все эффекты, которые она накладывает.
Если вы на самом деле используете пользовательские темы Emacs, то ответ не так прост. Вы не можете отменить применение пользовательской темы. Что вы можете сделать, что очень поможет, так это отключить каждую пользовательскую тему, используя disable-theme
, после того, как она была включена, и до включения другой пользовательской темы.
Вот два способа сделать это «полуавтоматически»:
Посоветуйте load-theme
, чтобы он сначала отключил все пользовательские темы перед загрузкой (включением) другой. Это было предложено в этом ответе StackOverflow по Tungd на tungdao.com .
(defadvice load-theme (before theme-dont-propagate activate)
(mapcar #'disable-theme custom-enabled-themes))
Определите и используйте функцию, которая отключает текущую тему перед включением темы . Это было предложено Марисом Орбидансом .
(defun enab-theme (theme)
(if current-t43m3 (disable-theme current-t43m3))
(setq current-t43m3 theme)
(load-theme theme t))
Посмотрите эти оригинальные сообщения SO для получения дополнительной информации, и посмотрите вопрос и другие ответы на него на той же странице SO. (Предостережение: принятый ответ на этой странице не является решением проблемы удаления пользовательской темы.)
Имейте в виду, что даже решения, описанные в # 2, не являются общими решениями: они не отменяют применение пользовательской темы - это невозможно сделать. То есть отключение пользовательской темы не восстанавливает никаких настроек, не связанных с темой (например, изменения лица), которые вы могли сделать до включения этой темы и которые были переопределены этой темой.
Другими словами, удаление цветовой темы тривиально; отмена пользовательской темы невозможна. Лучшее, что вы можете сделать для пользовательской темы - это отключить ее относительно других пользовательских тем.
Наилучшим справочным материалом по этому вопросу и способам переключения (например, циклическое переключение) между цветными и пользовательскими темами являются страница Emacs Wiki Color и пользовательские темы .
И будьте предупреждены: в различных местах есть много вводящей в заблуждение информации о пользовательских темах Emacs в этом отношении. Люди по праву были рады, что Emacs добавил пользовательские темы в качестве функции в Emacs 24, и некоторые из них сразу же пришли к ошибочному выводу, что пользовательские темы являются заменой цветным. Они не. У каждого есть свои преимущества. Например, невозможность отмены является серьезным недостатком пользовательских тем.
[ Этот отчет об ошибке GNU Emacs является запросом на улучшение, чтобы исправить невозможность отменить пользовательскую тему (и, таким образом, восстановить более ранние настройки).]
color-theme-dark-laptop
вы, вам нужно вручную сделать снимок, если вы хотите вернуться к предыдущей теме. Например(fset 'color-theme-revert (color-theme-make-snapshot))
, даст вам командуcolor-theme-revert
вернуться. Кнопка [Сброс] не будет работать в противном случае. (Чтобы проверить, прав ли я, неcolor-theme-select
вводите команду перед тем, как сменить тему, так как это сделает недостающий снимок для вас)customize-themes
пользовательском интерфейсе), если я хочу включить более одной темы одновременно. Я предполагаю, что это может быть способом отменить тему, применяемую на случай, если я передумаю. И я также предполагаю, что с каким-то Лиспом можно было бы сохранить автоматическое резервное копирование перед любыми включениями.Если вы выбрали одну из встроенных тем из
M-x customize-themes
, просто закомментируйте строки, которые включают пользовательскую тему в вашей~/.emacs
.источник