Emacs имеет это, на первый взгляд, очень удобное средство для создания автозагрузки файлов на основе волшебных комментариев исходного кода ("куки автозагрузки") в форме ;;;###autoload
, которые должны быть размещены в строках непосредственно над каждое определение для автозагрузки; см (elisp) Автозагрузка .
Казалось бы, это идеальный инструмент для поддержки автозагрузки тех маленьких однофайловых пакетов, которые пользователи Emacs неизбежно заканчивают тем, что устанавливали в свои профили. Есть только одна небольшая проблема: эта возможность (в любом случае в GNU Emacs) почти полностью сфокусирована на создании файла loaddefs.el
для самого Emacs, с очень небольшой (если таковой имеется) уступкой для других целей.
Это не мешает большим пакетам использовать механизм autoloads.el
для создания своих собственных файлов автозагрузки, но те, на которые я смотрел, имеют довольно немного довольно сложный код, посвященный тому, чтобы заставить его делать то, что нужно, хотя некоторые из них могут быть связаны с расхождением GNU Emacs / XEmacs.
(Я думаю, что XEmacs немного лучше в этом плане, вероятно, по крайней мере частично из-за того, что его официальная система пакетов использует этот механизм для создания отдельных файлов автозагрузки для каждого пакета. Надеемся, что GNU Emacs включил пакет ELPA Система, которая также использует этот механизм, приводит к аналогичным улучшениям с их стороны.)
Итак, мой вопрос к вам:
Как сохранить файл автозагрузки для всех файлов .el
в каталоге, если они уже содержат все необходимые комментарии ;;;###autoload
(файлы автозагрузки)?
[Хм. цитаты блоков выглядят намного лучше на tex.SE ...]
В настоящее время я использую GNU Emacs 23.2.1, хотя чем дальше работает ответ, тем лучше. (В этом отношении было бы хорошо, если бы это также работало с XEmacs.)
Я на Windows, но MSYS установлен вместе с Emacs, так что сценарии sh / bash, вероятно, будут хорошими, если они не призывают ничего ужасно экзотического.
[Я не совсем уверен, что это относится не к суперпользователю, а к SO. Если уже есть пакет, который может позаботиться об этом только с небольшим количеством конфигурации, это возможно; с другой стороны, если (как я подозреваю) есть только довольно грубые фрагменты кода, которые могут потребовать большого количества прямых изменений, я думаю, что он, вероятно, принадлежит здесь на SO.]