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

为用户安装的elisp维护Emacs自动加载文件?,emacs,elisp,autoload,Emacs,Elisp,Autoload,Emacs有这个看起来非常好的工具,可以基于;;形式的神奇源代码注释(“自动加载cookies”)构建自动加载文件###自动加载,将其自身放置在每个要自动加载的定义上方的行上;看 这似乎是一个理想的工具,可以为Emacs用户最终不可避免地安装在其个人资料中的那些小文件包维护自动加载。只有一个小问题:这个工具(无论如何,在GNU Emacs中)似乎几乎完全专注于为Emacs本身生成loaddefs.el文件,对其他用途几乎没有(如果有的话)让步 这并不能阻止大型软件包使用autoloads.el机

Emacs有这个看起来非常好的工具,可以基于
;;形式的神奇源代码注释(“自动加载cookies”)构建自动加载文件###自动加载
,将其自身放置在每个要自动加载的定义上方的行上;看

这似乎是一个理想的工具,可以为Emacs用户最终不可避免地安装在其个人资料中的那些小文件包维护自动加载。只有一个小问题:这个工具(无论如何,在GNU Emacs中)似乎几乎完全专注于为Emacs本身生成
loaddefs.el
文件,对其他用途几乎没有(如果有的话)让步

这并不能阻止大型软件包使用
autoloads.el
机制来构建自己的自动加载文件,但我所看到的那些软件包有相当多的代码,专门用于实现所需的功能,尽管有些代码可能是由于GNU Emacs/XEmacs的分歧造成的

(我认为XEmacs在这方面要好一点,可能至少部分是因为它的官方软件包系统使用这种机制为每个软件包生成单独的自动加载文件。希望GNU Emacs包含了ELPA软件包系统,它也使用这种机制,从而在他们这方面带来类似的改进。)

所以,我想问你的问题是:

假设目录中的所有
.el
文件都具有所需的
;,我应该如何维护它们的自动加载文件###自动加载
注释(自动加载cookie)是否已就位

[嗯,tex.SE上的块引号看起来很酷…]

我目前正在使用GNU Emacs 23.2.1,尽管答案越靠后越好。(就此而言,如果它也能与XEMAC一起工作,那就太好了。)

我在Windows上,但在Emacs旁边安装了MSYS,所以sh/bash脚本可能会很好,只要它们不把任何东西称为异国情调

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

请查看


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

<2017年,您不必自己维护它。相反,您可以使用一个现代的包管理器,比如专门为您设计的包管理器

您可以使用
package.el
而不是
stright.el
,但是
package.el
有许多严重的问题,特别相关的一个问题是让
package.el
加载您自己编写的本地包非常困难,尤其是
package.el
绝对不支持在安装包后对其进行修改


您也可以使用其他包管理器。我写了一个内容广泛的部分。

嗯,似乎除了我之外还有其他人对此表示赞同,但没有投赞成票:有2个用户表示赞同(我想其中一个就是我),但根本没有投票。我想知道这是为什么-健忘?“让package.el加载您自己编写的本地包是非常尴尬的”。。。呃,不,不是;事实上,这非常简单:
M-x软件包安装文件
@phils然后每次修改文件时都必须重新运行该命令,而且在使用
M-x查找功能
和好友时必须跳转,以确保编辑的是真实文件,而不是
package.el
创建的副本。我认为这并不容易。