For example, evil is autoload,
Some blogs/threads will use
(require 'evil)
(evil-mode 1)
to enable evil mode.
AFAIK, Elisp is lisp2 and evil-mode
is also a function, so doesn't need setq
.
(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))))
But, because of autoload
,
(evil-mode 1)
Without require
, it also works fine(at least for me)
(If anywhere below is wrong, please correct me, thx)
My question is when must I use require
if the required package is autoloaded
You're correct -- if an autoload
declaration for evil-mode
has been evaluated, then there is no need to (require 'evil)
prior to (evil-mode 1)
Individual users may or may not need to (require 'evil)
though. It's a question of how the library has been installed. On its own an ;;;###autoload
cookie does nothing; but if you installed evil
using package.el, then they will have been parsed and turned into a file of autoload
declarations, which Emacs will load when packages are initialised.
If you install a library without using a package manager, then you may need to require
it, or else write your own autoload
declaration for the functions you might be calling.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With