Настройте список пакетов, которые предоставляет emacs-prelude
Я вижу по этой ссылке, как emacs prelude обеспечивает установку пакета при запуске emacs. Мне было интересно, могу ли я как-то расширить переменную prelude-packages
добавить некоторые другие пакеты, не меняя prelude-packages.el
файл?
За исключением того, что мне было интересно, как я могу определить список пакетов, которые устанавливаются при запуске, если они еще не установлены.
3 ответа
Prelude рекомендует использовать
(prelude-require-packages '(some-package some-other-package))
если у вас есть несколько пакетов. Или, если вы хотите добавить только один пакет:
(prelude-require-package 'some-package)
Если вы хотите, вы все равно можете сохранить свой список пакетов в переменной:
(setq my-packages '(drupal-mode nginx-mode toto-mode)
(prelude-require-package my-packages)
Вы можете разместить .el
файл в personal/
каталог в прелюдии. Prelude загружает любой найденный там файл.el в алфавитном порядке. Ниже приводится содержание моего personal/00-packages.el
файл.:
(require 'package)
(add-to-list 'package-archives
'("marmalade" .
"http://marmalade-repo.org/packages/"))
(package-initialize)
;; My packages
(setq prelude-packages (append '(
drupal-mode
nginx-mode
) prelude-packages))
;; Install my packages
(prelude-install-packages)
"00" добавляется к имени файла, чтобы гарантировать, что файл загружается до всех личных настроек. Добавьте любой новый пакет, который вам нужен, в добавляемый список prelude-packages
,
Кроме того, если вы хотите использовать любой режим, который недоступен в MELPA или Marmalade, вы можете просто удалить файл режима в личную папку, и Prelude подхватит его во время загрузки. Если в этом режиме есть какие-либо настройки, просто создайте другой файл.el и добавьте туда код Emacs Lisp.
В ваш файл.emacs вы можете добавить такой код (очень похожий на код в отправленной вами ссылке), чтобы проверить, установлен ли каждый пакет, и установить его, если его нет:
(dolist (package '(eredis anything erlang elnode))
(unless (package-installed-p package)
(package-install package)))
В ответ на ваш вопрос нет причин, по которым вы не сможете сделать это после запуска кода прелюдии.