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 。