首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我什么时候应该使用‘需要量’这个包是‘`autoload`’?

我什么时候应该使用‘需要量’这个包是‘`autoload`’?
EN

Stack Overflow用户
提问于 2018-07-14 01:28:14
回答 1查看 1.5K关注 0票数 6

例如,邪恶是自作自受

一些博客/线程将使用

代码语言:javascript
复制
(require 'evil)
(evil-mode 1)

来启用邪恶模式。

AFAIK,Elisp是lisp2,evil-mode也是一个函数,所以不需要setq

代码语言:javascript
复制
(defadvice evil-mode (after start-evil activate)
  "Enable Evil in Fundamental mode."
  (if evil-mode
      (progn
        (when (eq (default-value 'major-mode) 'fundamental-mode)
          ;; changed back by `evil-local-mode'
          (setq-default major-mode 'turn-on-evil-mode))
        (ad-enable-regexp "^evil")
        (ad-activate-regexp "^evil")
        (with-no-warnings (evil-esc-mode 1)))
    (when (eq (default-value 'major-mode) 'turn-on-evil-mode)
      (setq-default major-mode 'fundamental-mode))
    (ad-disable-regexp "^evil")
    (ad-update-regexp "^evil")
    (with-no-warnings (evil-esc-mode -1))))

但是,因为autoload

代码语言:javascript
复制
(evil-mode 1)

没有require,它也能正常工作(至少对我来说是这样)

(如果下面任何地方出错,请纠正我,thx)

我的问题是,如果所需的包是自动加载的,什么时候必须使用require

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-14 05:46:10

您是正确的--如果已经计算了evil-modeevil-mode声明,那么在(evil-mode 1)之前不需要使用(require 'evil)

但是,单个用户可能需要也可能不需要(require 'evil)。这是一个如何安装库的问题。;;;###autoload cookie本身不起任何作用;但是如果您使用package.el安装了evil,那么它们将被解析并转换为autoload声明的文件,在初始化包时Emacs将加载这些声明。

如果不使用包管理器安装库,则可能需要对其进行require,或者为可能调用的函数编写自己的autoload声明。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51334468

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档