Next: Templates in contexts, Previous: Template elements, Up: Capture templates [Contents][Index]

#### 9.1.3.2 Template expansion

In the template itself, special `%`-escapes92 allow dynamic insertion of content. The templates are expanded in the order given here:

    %[file]     Insert the contents of the file given by file.
    %(sexp)     Evaluate Elisp sexp and replace with the result.
                      For convenience, %:keyword (see below) placeholders
                      within the expression will be expanded prior to this.
                      The sexp must return a string.
    %<...>      The result of format-time-string on the ... format specification.
    %t          Timestamp, date only.
    %T          Timestamp, with date and time.
    %u, %U      Like the above, but inactive timestamps.
    %i          Initial content, the region when capture is called while the
                region is active.
                The entire text will be indented like %i itself.
    %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 cursor here.

For specific link types, the following keywords will be defined93:

    Link type                        |  Available keywords
    ---------------------------------+----------------------------------------------
    bbdb                             |  %:name %:company
    irc                              |  %:server %:port %:nick
    vm, vm-imap, wl, mh, mew, 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")(94)
    gnus                             |  %:group, for messages also all email fields
    w3, w3m                          |  %:url
    info                             |  %:file %:node
    calendar                         |  %:date

To place the cursor after template expansion use:

    %?          After completing the template, position cursor here.

#### Footnotes

### (92)

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

### (93)

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.

### (94)

This will always be the other, not the user. See the variable `org-from-is-user-regexp`.

Next: Templates in contexts, Previous: Template elements, Up: Capture templates [Contents][Index]