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

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

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

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

Но когда я печатаю M-x load-theme TAB, темная тема не указана.

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

Ответ 1

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

Предполагая, что вы установили пакеты elpa в ~/.emacs.d/elpa/, добавьте этот script в свой ~/.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.)

Ответ 2

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

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

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

Изменить: 1

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

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

Ответ 3

Я новый для 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 сделал трюк

Ответ 4

Я думаю, вам нужно установить custom-theme-directory, а затем включить sha256 hash в 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/")
)

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