Use-package 用法: Difference between revisions

From 清冽之泉
Jump to navigation Jump to search
No edit summary
No edit summary
 
(One intermediate revision by the same user not shown)
Line 52: Line 52:
|满足条件才处理
|满足条件才处理
|看条件决定
|看条件决定
|}
{| class="wikitable"
|+关键词作用
!关键词
!是不是加载触发器
!本质
|-
|<code>:init</code>
|否
|'''加载前'''执行配置
|-
|<code>:config</code>
|否
|'''加载后'''执行配置
|-
|<code>:custom</code>
|否
|设置变量
|-
|<code>:ensure</code>
|否
|保证包已安装
|-
|<code>:commands</code>
|是
|声明命令 autoload
|-
|<code>:bind</code>
|是
|按键触发 autoload
|-
|<code>:hook</code>
|是
|hook 中函数触发 autoload
|-
|<code>:mode</code>
|是
|文件类型触发 autoload
|}
|}

Latest revision as of 22:13, 20 July 2026

加载时机
写法 什么时候加载 直觉理解
(use-package foo) 立即 启动时就 require
:commands foo 调用命令时 这个命令是入口
:bind ("C-c f" . foo) 第一次按快捷键时 按键是入口
:hook (prog-mode . foo-mode) hook 运行并调用该函数时 进入某场景是入口
:mode "\\.foo\\'" 打开匹配文件时 文件类型是入口
:interpreter "python" 文件解释器匹配时 shebang 是入口
:bind-keymap 使用对应 prefix keymap 时 按键映射是入口
:defer t 不立即加载 先睡着,等别人叫醒
:defer 5 Emacs 空闲 5 秒后 闲下来再加载
:demand t 强制立即加载 现在马上加载
:after foo foo 加载后 等前置包
:if / :when / :unless 满足条件才处理 看条件决定
关键词作用
关键词 是不是加载触发器 本质
:init 加载前执行配置
:config 加载后执行配置
:custom 设置变量
:ensure 保证包已安装
:commands 声明命令 autoload
:bind 按键触发 autoload
:hook hook 中函数触发 autoload
:mode 文件类型触发 autoload