(use-package lsp-mode
:init
(setq lsp-keymap-prefix "C-c l")
:config
(lsp-enable-which-key-integration t)
:hook (c++-mode . lsp))
请问这里的 hook
是不是表示我在开启 c++-mode
后,函数 lsp
会被调用呢。
如果我换种方式
(use-package lsp-mode
:init
(setq lsp-keymap-prefix "C-c l")
:config
(lsp-enable-which-key-integration t)
:hook: (c++-mode . lsp-deferred)
:commands (lsp lsp-deferred))
这是 lsp 官网抄来的,这里 hook
和 commands
是不是重复了啊
是的。相当于 (add-hook 'c++-mode-hook #'lsp-deferred)
你可以 C-h f use-package 去了解相关的关键字,或者去官方仓库看文档 ,上面有说明这个关键字的用法,以及例子。
:commands Define autoloads for commands that will be defined by the
package. This is useful if the package is being lazily
loaded, and you wish to conditionally call functions in your
‘:init’ block that are defined in the package.
:hook Specify hook(s) to attach this package to.
1 个赞
:commands
的用途是创建 autoload
,不过 :hook
也会创建 autoload
就是了
推荐过一边 use-package
的文档,论坛里有人翻译了中文版
https://phenix3443.github.io/notebook/emacs/modes/use-package-manual.html
PS : 你第二个例子里 :hook
后面多了个冒号
lkpjj
2022 年5 月 24 日 15:03
5
emacs-lisp-macroexpand 看下就知道了
mezi
2022 年5 月 25 日 01:12
6
感觉leaf 要比 use-package 好用点。
两个差不多。use-package 更加流行,主流的第三方配置基本都是用 use-package 举例,很少看见用 leaf 举例的。
use-package 功能稳定,目前基本已经停止开发,作者工作忙,没时间维护。之前说的要在 Emacs 29 加入核心,也遥遥无期了。
mezi
2022 年5 月 25 日 04:58
9
是leaf想要内置进emacs吧?use-package不是因为协议有点麻烦嘛。
协议已经没问题了。只是作者没空,如果有人帮忙整理代码,以及文档等,应该就快了。看到也有人主动愿意帮忙,不知道目前进展怎么样了。
这里有 John Wiegley 最近的回复:
Is use-package unmaintained?
John Wiegley :
Maintainer here: Yes, it has not been actively maintained for over a year now. I am very much open to assistance from the community, so long we retain the objectives of stability and not breaking anyone’s current configurations.
The next major task to be done is packaging up use-package for inclusion in Emacs proper. If anyone is available to help with this effort, I would be more than happy to work alongside.
https://www.reddit.com/r/emacs/comments/t5cmap/is_usepackage_unmaintained/
感谢大家的回复,我看了一遍 manual,基础部分已经理解了
lynnux
2022 年5 月 25 日 07:47
12
use-package有个:defer加上数字延迟加载还是很不错,不用这个包的话只能自己写run-with-timer什么的实现了。
有个包叫 on ,可以根据需要设置包加载的时机。比如第一次按键,第一次打开文件什么的。
1 个赞