Настройте список пакетов, которые предоставляет 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)))

В ответ на ваш вопрос нет причин, по которым вы не сможете сделать это после запуска кода прелюдии.

Другие вопросы по тегам