Настройте список пакетов, которые предоставляет emacs-prelude

Я вижу на эту ссылку как emacs prelude обеспечивает установку набора пакетов при запуске emacs. Мне было интересно, могу ли я как-то расширить переменную prelude-packages, чтобы добавить некоторые другие пакеты, не меняя файл prelude-packages.el?

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


person Varun Madiath    schedule 09.08.2012    source источник


Ответы (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)
person AdrieanKhisbe    schedule 24.02.2015

Вы можете поместить файл .el в каталог personal/ в Prelude. 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.

person kaustavdm    schedule 17.01.2013

В файле .emacs вы можете добавить такой код (очень похожий на код в отправленной вами ссылке), чтобы проверить, установлен ли каждый пакет, и установить его, если нет:

(dolist (package '(eredis anything erlang elnode)) 
  (unless (package-installed-p package)
    (package-install package)))

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

person justinhj    schedule 09.08.2012