Другой альтернативой является использование Джона Wiegley в потребительскую упаковку . Это обеспечивает программный способ конфигурирования пакетов, которые хорошо работают с процессом инициализации пакетов emacs 24+. Вот пример использования из readme:
(use-package color-moccur
:commands (isearch-moccur isearch-all)
:bind (("M-s O" . moccur)
:map isearch-mode-map
("M-o" . isearch-moccur)
("M-O" . isearch-moccur-all))
:custom (isearch-lazy-highlight t)
:config (use-package moccur-edit))
Дело в том, что use package является макросом и не оценивает свои аргументы сразу. Параметры :init
и :config
оцениваются на разных этапах процесса инициализации, что позволяет иметь конфигурацию каждого пакета в одном месте, но каждая часть выполняется на соответствующем этапе инициализации.
Без чего-то похожего use-package
некоторые пакеты требуют, чтобы часть их кода инициализации шла до, (package-initialize)
а другая часть - после. Если у вас много подобных пакетов, то их инициализация должна чередоваться.
Еще одним преимуществом use-package
является то, что он может автоматически устанавливать недостающие пакеты с помощью package.el, если вы перенесете .emacs на новый компьютер или если вы поделитесь своей конфигурацией с другим пользователем, и вся инициализация может быть отложена до фактической загрузки пакета.
Существуют также дополнительные ключевые аргументы, которые позволяют лучше контролировать процесс инициализации.
Все это говорит о том, что одним из больших преимуществ настройки является то, что она показывает, что нужно настраивать в любом конкретном пакете. Это одна из причин, почему я до сих пор использую его для многих своих пакетов.