use-package 延迟加载求教

包A,包B。 (use-package A :ensure t :defer t )

(use-package B :ensure t :defer t :hook (b-hook . a-hook) )

在buffer切换到 C+±mode 下面自动加载包A。并根据hook再加载包B。在use-package 里面应该怎么配? 或者怎么实现?

没看懂你的第二个需求。第一个需求可以这么写

(use-package cc-mode
  ;; 其他配置
  :config 
  (use-package A
    ;; 配置
    ))

吐槽一下,有的时候用 use-package 完全是给自己找麻烦嘛:

(with-eval-after-load 'cc-mode
  (require 'A))

感谢指导。 包B呢?也要像A一样套到里面吗? 不套的话貌似不能加载。

不用use-package 有什么好的推荐么? 全写lisp看起来太蛋疼了

还想请教下。主模式的切换,emacs在做。 elisp可以写个线程监听主模式的切换来加载自己需要的包,卸载掉不需要的吗?

major mode 不都有hook嘛?

调用 autoload 就会自动加载包,没有加 autoload 就用:commands关键字生成一个。 所以第二个需求应该这样:

(use-package cc-mode
  :ensure nil
  ;; 其他配置
  :config 
 (use-package B
    :ensure t
    :defer t)
  (use-package A
    :ensure t
    :defer t
    ;; 配置
    :hook (a-mode . b-autoload-func)
    )))