Next: , Previous: , Up: Capture templates   [Contents][Index]


10.1.3.2 Template expansion

In the template itself, special “%-escapes”85 allow dynamic insertion of content. The templates are expanded in the order given here:

‘%[FILE]’

Insert the contents of the file given by FILE.

‘%(EXP)’

Evaluate Elisp expression EXP and replace it with the result. The EXP form must return a string. Only placeholders pre-existing within the template, or introduced with ‘%[file]’, are expanded this way. Since this happens after expanding non-interactive “%-escapes”, those can be used to fill the expression.

‘%<FORMAT>’

The result of format-time-string on the FORMAT specification.

‘%t’

Timestamp, date only.

‘%T’

Timestamp, with date and time.

‘%u’, ‘%U’

Like ‘%t’, ‘%T’ above, but inactive timestamps.

‘%i’

Initial content, the region when capture is called while the region is active. If there is text before ‘%i’ on the same line, such as indentation, and ‘%i’ is not inside a ‘%(exp)’ form, that prefix is added before every line in the inserted text.

‘%a’

Annotation, normally the link created with org-store-link.

‘%A’

Like ‘%a’, but prompt for the description part.

‘%l’

Like ‘%a’, but only insert the literal link.

‘%c’

Current kill ring head.

‘%x’

Content of the X clipboard.

‘%k’

Title of the currently clocked task.

‘%K’

Link to the currently clocked task.

‘%n’

User name (taken from user-full-name).

‘%f’

File visited by current buffer when org-capture was called.

‘%F’

Full path of the file or directory visited by current buffer.

‘%:keyword’

Specific information for certain link types, see below.

‘%^g’

Prompt for tags, with completion on tags in target file.

‘%^G’

Prompt for tags, with completion all tags in all agenda files.

‘%^t’

Like ‘%t’, but prompt for date. Similarly ‘%^T’, ‘%^u’, ‘%^U’. You may define a prompt like ‘%^{Birthday}t’.

‘%^C’

Interactive selection of which kill or clip to use.

‘%^L’

Like ‘%^C’, but insert as link.

‘%^{PROP}p’

Prompt the user for a value for property PROP.

‘%^{PROMPT}’

Prompt the user for a string and replace this sequence with it. You may specify a default value and a completion table with ‘%^{prompt|default|completion2|completion3...}’. The arrow keys access a prompt-specific history.

‘%\N’

Insert the text entered at the Nth ‘%^{PROMPT}’, where N is a number, starting from 1.

‘%?’

After completing the template, position point here.

For specific link types, the following keywords are defined86:

Link typeAvailable keywords
bbdb‘%:name’, ‘%:company’
irc‘%:server’, ‘%:port’, ‘%:nick’
mh, rmail‘%:type’, ‘%:subject’, ‘%:message-id’
‘%:from’, ‘%:fromname’, ‘%:fromaddress’
‘%:to’, ‘%:toname’, ‘%:toaddress’
‘%:date’ (message date header field)
‘%:date-timestamp’ (date as active timestamp)
‘%:date-timestamp-inactive’ (date as inactive timestamp)
‘%:fromto’ (either “to NAME” or “from NAME”)87
gnus‘%:group’, for messages also all email fields
w3, w3m‘%:url’
info‘%:file’, ‘%:node’
calendar‘%:date’
org-protocol‘%:link’, ‘%:description’, ‘%:annotation’

Footnotes

(85)

If you need one of these sequences literally, escape the ‘%’ with a backslash.

(86)

If you define your own link types (see Adding Hyperlink Types), any property you store with org-store-link-props can be accessed in capture templates in a similar way.

(87)

This is always the other, not the user. See the variable org-link-from-user-regexp.


Next: , Previous: , Up: Capture templates   [Contents][Index]