维护用户安装的elisp的Emacs自动加载文件?

Sam*_*amB 9 emacs elisp autoload

Emacs有这个看似非常好的工具,用于根据表单的魔术源代码注释("自动加载cookie")构建自动加载文件;;;###autoload,这些文件将被放置在每个定义上方的行上,以便自动加载; 看(elisp)Autoload.

这似乎是一个理想的工具,用于维护Emacs用户不可避免地最终安装在他们的配置文件中的那些小的单文件包的自动加载.只有一个小问题:这个设施(无论如何在GNU Emacs中)似乎几乎完全专注于loaddefs.el为Emacs本身生成文件,对其他用途的贡献非常少(如果有的话).

这并没有阻止大型软件包使用autoloads.el机器来构建自己的自动加载文件,但是那些我看过的软件包含了相当多毛茸茸的代码,专门用它来做它所需要的,尽管有些毛羽可能是由于GNU Emacs/XEmacs的分歧.

(我认为XEmacs在这方面要好一些,可能至少部分原因在于它的官方软件包系统使用这种机制为每个软件包制作单独的自动加载文件.希望GNU Emacs包含ELPA软件包系统,也使用这种机器,导致他们方面的类似改进.)

所以,我的问题是:

我应该如何维护目录中所有.el文件的自动加载文件,假设它们已经具备了所有必要的;;;###autoload注释(自动加载cookie)?

[嗯.阻止报价在tex.SE上看起来很酷...]

我目前正在使用GNU Emacs 23.2.1,尽管答案越远,越好.(就此而言,如果它也适用于XEmacs会很好.)

我在Windows上,但是在Emacs上安装了MSYS,所以sh/bash脚本可能会很好,只要它们不会调用任何异乎寻常的东西.

[我不完全确定这不属于超级用户,而不属于SO.如果已经有一个只需少量配置即可解决这个问题的软件包,它可能会这样做; 另一方面,如果(我怀疑)只有相当粗略的代码片段可能需要大量的直接更改,我认为它可能属于SO.

Tre*_*son 2

查看“emacs23 / elisp:如何正确自动加载此库?”答案

总之,您将所有包转储到特定目录中,并创建您自己的包update-auto-loads.el,该包构建并提供一个您可以在需要时loaddefs.el定期运行以重建文件的函数。loaddefs.el