Пакетный менеджер в Emacs
Когда используешь Емакс достаточно долго, накапливается большое количество всяких сторонних .el-файлов, пакетов собственно. Всякие yasnippet, grep+, smex'ы и прочие ack'и. Само по себе это, конечно, клёво, но за ними приходится следить, обновлять руками, ложить их в тот же репозиторий с емаксовыми конфигами — а это уже как-то не совсем кайфово, ну и в общем нет чувства икебаны, откровенно говоря. :)
Но тут на прошлой неделе по наводке @helge9210 я пристально посмотрел на el-get и за один вечер на него перешёл. :)
Вкратце — это apt-get для Emacs'a. Пишешь в конфиг емакса декларацию о том, чего ты хочешь видеть, как это скачать, что нужно выполнить после того, как пакет будет на месте — и всё начинает работать автоматически. Всë — это значит, что при старте емакса происходит проверка, на месте ли пакет, при необходимости скачивается, байт-компилируется и добавляется в load-path.
Я себе написал небольшой макрос для облегчения жизни, и теперь большая часть пакетов у меня загружается простой инструкцией:
(el-get-add
(:name ack))
Тут конечно есть небольшая хитрость — ack.el есть в списке рецептов el-get'a, но если чего нет, то дело это сильно не осложняет:
(el-get-add
(:name project-root
:type hg
:url "http://hg.piranha.org.ua/project-root/"
:features project-root
:after (lambda ()
"...код инициализации project-root...")))
Я думаю, что большая часть параметров тут сама собой понятна, а :features project-root всего лишь значит, что нужно вызвать (require 'project-root).
Инсталляция el-get предельно проста и описана в README, после чего он оказывается установленным в ~/.emacs.d/el-get/el-get/ (~/.emacs.d/el-get/ — общее место для инсталляции пакетов). В общем, клёвая штука, рекомендую. :)
Все замечания и вопросы можно отправлять письмами на