10.1.3.2 Template expansion

在模板内部,特殊的 “%-转义序列”88支持动态插入内容。模板按以下顺序展开:

%[FILE]

插入 FILE 指定文件的内容。

%(EXP)

执行 Elisp 表达式 (EXP) 并用结果替换。 (EXP) 必须返回字符串。只有模板中原有的占位符或通过 ‘%[file]’ 引入的占位符会以此方式展开。由于该操作在非交互式 “%-转义” 展开之后执行,因此可使用后者填充表达式。 示例: ‘%(org-id-new)’ 、 ‘%(eval default-directory)

%<FORMAT>

FORMAT 执行 format-time-string 的结果。

%t

时间戳,仅日期。

%T

时间戳,包含日期与时间。

%u’ 、 ‘%U

与上述 ‘%t’ 、 ‘%T’ 类似,但为非激活时间戳。

%i

初始内容,即捕获时选中的区域内容。若同一行中 ‘%i’ 前有文本(如缩进),且 ‘%i’ 不在 ‘%(exp)’ 内,该前缀会添加到插入文本的每一行前。

%a

注释,通常是 org-store-link 创建的链接。

%A

与 ‘%a’ 类似,但会提示输入描述部分。

%l

与 ‘%a’ 类似,但仅插入原始链接。

%L

与 ‘%l’ 类似,但不含括号(仅链接内容)。

%c

当前剪切板首位内容。

%x

X 剪切板内容。

%k

当前计时任务的标题。

%K

指向当前计时任务的链接。

%n

用户名(取自 user-full-name )。

%f

调用 org-capture 时当前缓冲区打开的文件。

%F

当前缓冲区打开文件或目录的完整路径。

%:keyword

特定链接类型的专用信息,见下文。

%^g

提示输入标签,支持目标文件内标签补全。

%^G

提示输入标签,支持所有日程文件内标签补全。

%^t

与 ‘%t’ 类似,但提示选择日期。同理支持 ‘%^T’ 、 ‘%^u’ 、 ‘%^U’ 。可定义提示文字如 ‘%^{Birthday}t’ 。

%^C

交互式选择要使用的剪切或剪贴内容。

%^L

与 ‘%^C’ 类似,但作为链接插入。

%^{PROP}p

提示用户输入属性 PROP 的值。可通过 ‘%^{PROP|default}’ 指定默认值。

%^{PROMPT}X’ ,X 为 g、G、t、T、u、U、C、L 之一

按 ‘%^X’ 方式提示用户,但使用自定义提示字符串。可通过 ‘%^{PROMPT|default|completion1|completion2|completion3...}X’ 指定默认值与补全项。

%^{PROMPT}

提示用户输入字符串并替换该序列。可通过 ‘%^{prompt|default|completion2|completion3...}’ 指定默认值与补全表。方向键可访问提示专用历史记录。

%\N

插入第 N 个 ‘%^{PROMPT}’ (不含 ‘%^{PROMPT}X’ )中输入的文本,N 为从 1 开始的数字。

%\*N

与 ‘%\N’ 相同,但包含所有提示内容。

%?

完成模板展开后,将光标定位到此处。

对于特定链接类型,定义了以下关键字89

链接类型可用关键字
bbdb%:name’ 、 ‘%:company
irc%:server’ 、 ‘%:port’ 、 ‘%:nick
mh, rmail%:type’ 、 ‘%:subject’ 、 ‘%:message-id
%:from’ 、 ‘%:fromname’ 、 ‘%:fromaddress
%:to’ 、 ‘%:toname’ 、 ‘%:toaddress
%:date’ (邮件日期头字段)
%:date-timestamp’ (日期作为激活时间戳)
%:date-timestamp-inactive’ (日期作为非激活时间戳)
%:fromto’ (“to 姓名” 或 “from 姓名”)90
gnus%:group’ ,邮件还支持所有邮件字段
w3, w3m%:url
info%:file’ 、 ‘%:node
calendar%:date
org-protocol%:link’ 、 ‘%:description’ 、 ‘%:annotation

Footnotes

(88)

若需原样使用这些序列,可用反斜杠转义 ‘%’ 。

(89)

若自定义了链接类型(参见 Adding Hyperlink Types),通过 org-link-store-props 保存的任何属性都可在捕获模板中以类似方式访问。

(90)

此处始终指对方而非用户,参见变量 org-link-from-user-regexp