почему emacs 24 не может найти пользовательскую тему, которую я добавил?

Вся моя настройка emacs находится здесь

Я загрузил свой файл init-theme.el здесь

И предположительно это должно сделать доступной тему darkclean.

Но когда я набираю M-x load-theme TAB, тема darkclean не отображается в списке.

Как я могу зарегистрировать его для Emacs 24?


person Terrence Brannon    schedule 23.03.2012    source источник
comment
посмотрите здесь emacs 24 имеет собственную поддержку тем.   -  person Selman Ulug    schedule 23.03.2012


Ответы (4)


Если вы устанавливаете темы через elpa / package.el, вы заметите, что вам нужно добавить каждую папку темы в ваш custom-theme-load-path — это немного сложно сделать вручную, особенно если вы принимаете во внимание, что обновления создадут новую папку, например. 0.1.0 -> 0.1.2 будет новой папкой внутри вашей папки elpa.

Предполагая, что вы установили свои пакеты elpa в ~/.emacs.d/elpa/, добавьте этот скрипт в свой ~/.emacs.d/init.el

(require 'dash)
(require 's)

(-each
   (-map
      (lambda (item)
      (format "~/.emacs.d/elpa/%s" item))
   (-filter
      (lambda (item) (s-contains? "theme" item))
      (directory-files "~/.emacs.d/elpa/")))
   (lambda (item)
      (add-to-list 'custom-theme-load-path item)))

Вам понадобятся dash.el и s.el (доступны в elpa).

person ocodo    schedule 13.03.2013
comment
К вашему сведению, использование el-get не требует ручного обновления путей загрузки. Я убедился, что мой автоматически обновился с помощью C-h v RET custom-theme-load-path. - person Tim S.; 07.08.2014
comment
@ТимС. многие темы автоматически добавляются в custom-theme-load-path при установке (по крайней мере, самые новые/хорошо поддерживаемые). Сценарий выше просто добавляет те, которые этого не делают. В самом исходном коде el-get нет ничего, что могло бы что-то сделать с custom-theme-load-path, идите вперед и загрузите его. - person ocodo; 09.08.2014
comment
да, я хотел сказать, что многие установленные темы будут автоматически обновлять путь, а не el-get... моя ошибка. Спасибо. - person Tim S.; 11.08.2014

init-themes закомментировал путь загрузки.

У меня есть этот (add-to-list 'custom-theme-load-path "~/.emacs.d/themes"), и я думаю, что он нашел все мои темы с M-x load-theme, enter, затем нажмите Tab, чтобы увидеть все темы.

в github не было поиска вашего репо, поэтому я не мог найти, делаете ли вы это где-то еще. Также ваш darkclean совместим с темой 24?

Редактировать: 1

на самом деле я подумал о другом методе отладки, чтобы исключить возможность использования darkclean против setup. поместите в свой каталог тему Solarized, и если вы не видите ее в своей теме загрузки, вы знаете это вы а не тема, так как у меня соляриза так работало на emacs 24.

Мне это не нравится, и на самом деле я предпочитаю вомбата.

person pjammer    schedule 04.05.2012
comment
вот darkclean.el — github.com/metaperl/emacs/blob/ мастер/темы/darkclean.el - person Terrence Brannon; 04.05.2012
comment
Спасибо за это :D - person Renato Cassino; 04.04.2017

Я новичок в emacs и хотел добавить несколько пользовательских тем, а также создать свои собственные.

сначала добавьте это

(add-to-list 'custom-theme-load-path "~/.emacs.d/themes")

затем добавьте любую новую тему в эту папку. Сначала это не сработало, и когда я использовал load-theme, темы в ~/.emacs.d/thems не загружались.

в документации сказано:

Каждый файл темы называется THEME-theme.el, где THEME — это имя темы.

поэтому переименование darklean.el в darkclean-theme.el помогло.

person locojay    schedule 11.10.2012
comment
Ааа сделал свое дело! Спасибо, я рвал на себе волосы, почему моя тема не могла быть найдена, пока не увидел, что вам просто нужно было добавить -theme в конец. Бесконечно благодарен! - person FrostedCookies; 28.02.2021

Я думаю, вам нужно установить custom-theme-directory, а затем включить хэш sha256 в custom-safe-themes, чтобы удалить запрос подтверждения каждый раз, когда вы его загружаете. Чтобы вставить хэш sha256, вы можете использовать интерфейс customize, так как тогда он рассчитывается за вас. Чтобы включить тему, вам нужно включить ее в custom-enabled-themes.

Ниже приведен пример из моей установки:

(custom-set-variables
 ;; ...
 '(custom-enabled-themes (quote (dark-emacs)))
 '(custom-safe-themes (quote ("<SHA256 hash goes here>" default)))
 '(custom-theme-directory "~/.emacs.d/themes/")
)

Чтобы увидеть мою фактическую настройку, взгляните на следующие ссылки:

person suvayu    schedule 07.05.2012