我正在尝试对GNU Emacs 23进行编程,以根据需要延迟发送require命令,而不是在.emacs文件中预先发出。如果我想延迟执行load命令,可以使用autoload。但是requireload采用不同种类的参数。

是否有预定义的函数为require做的工作与autoloadload做的工作相同?如果没有,人们会建议我使用哪些工具进行自我滚动?

最佳答案

requireloadautoload之间没有区别。 require只是load的前端,或多或少可以归结为:

(defun require (feature &optional filename noerror)
  (unless (featurep feature)
    (let ((filename (or filename (symbol-name feature))))
      (load filename noerror))))

如您所见,给require赋予的符号名称等于给给load的文件名。实际上,在Emacs session 中评估的第一个(require 'foo)(load "foo")等效。

因此,您可以将(auto-load 'foo-function "foo")用作库foo-function中的foo,并可以使用(require 'foo)进行加载。

10-08 13:34
查看更多