比如elisp-mode会在Emacs启动时就加载,下面的代码会在启动时就打印出来 (scratch buffer是text-mode)
(with-eval-after-load 'elisp-mode
(message "how can I defer loading this"))
问题来了, 怎么defer Emacs内置的package。
比如elisp-mode会在Emacs启动时就加载,下面的代码会在启动时就打印出来 (scratch buffer是text-mode)
(with-eval-after-load 'elisp-mode
(message "how can I defer loading this"))
问题来了, 怎么defer Emacs内置的package。
see this
老实说,作用有限,只能defer这些包的配置而不能defer这些包本身。
Emacs 自身就会加载一些文件,甚至部分文件就是 Emacs 可执行文件的一部分,比如你提到的 elisp-mode.el
,参见 preloaded-file-list
。
Emacs 文件加载的记录保存在 load-history
。
(with-current-buffer (get-buffer-create "*foo*")
(pcase-dolist (`(,file . ,_) load-history)
(insert file ?\n))
(display-buffer (current-buffer)))
thx,我就是看到这个感觉很hack,估计没啥更好的方法了 Spacemacs是咋做的,没仔细看,它是没搞这一步吗