假设我在包中有3个函数:
;;;###autoload
(defun my-funcA () ...)
;;;###autoload
(defun my-funcB () ...)
;;;###autoload
(defun my-func-init () ...)
如果调用其中一个函数,是否会加载所有函数声明?
换句话说,如果必须加载my-func-init
才能使用此包,是否意味着所有autoload
都是多余的?
答案 0 :(得分:1)
就他们自己而言,这些评论只是评论。
使用单独的进程将关联的定义提取到loaddefs.el文件中。加载该文件时,将定义所有这些自动加载。因此,许多库的所有自动加载都可以捆绑在一起,可以快速加载。
M-x elisp-index-search
RET autoload cookie
RET
魔术自动加载评论(通常称为“自动加载Cookie”) 由';;; ### autoload'组成,在一条线上,就在它之前 在自动加载源文件中真正定义函数。 命令'M-x update-file-autoloads'写入相应的 'autoload'调用'loaddefs.el'。 (作为的字符串 自动加载cookie和生成的文件的名称 'update-file-autoloads'可以从上面的默认值中更改,请参阅 下面。)构建Emacs加载'loaddefs.el'然后调用 “自动加载”。 'M-x update-directory-autoloads'功能更强大; 它会更新当前目录中所有文件的自动加载。
包管理器处理任何给定包的自动加载cookie,因此包作者可以根据需要简单地添加这些注释。