= Registers == Description Registers are named lists of text -instead of simply text- in order to interact well with multiselection. They are used for various purposes, like storing yanked text, the locations of selections in a buffer, or groups captured by a regular expression. == Interacting **:: when in insert mode or in a prompt, insert the value stored in the *c* register (single character) *"*:: in normal mode, select the ** register (single character) == Alternate names Non alphanumeric registers have an alternative name that can be used in contexts where only alphanumeric identifiers are possible. == Default registers All normal-mode commands using a register default to a specific one if not specified: *"* (dquote):: default delete / copy / paste / replace register, used by: *c*, *d*, *y*, *p*, **, *

*, **, *R* and ** (see <>) */* (slash):: default search / regex register, used by: */*, **, *?*, **, *n*, **, *N*, **, ***, **, *s*, *S*, ** and ** (see <>). This is a prompt history register, holding the last 100 commands entered at an interactive regex prompt. *@* (arobase):: default macro register, used by: *q* and *Q* (see <>) *^* (caret):: default mark register, used by: *z*, **, *Z* and ** (see <> and <>) *|* (pipe):: default shell command register, used by commands that spawn a subshell: *|*, **, *!* and ** (see <>). This is a prompt history register, holding the last 100 commands entered at interactive shell command prompts, except for commands starting with a space. == Special registers Some registers are not general purposes, they cannot be written to, but they contain some special data *%* (percent):: current buffer name *.* (dot):: current selection contents *#* (hash):: selection indices (first selection has 1, second has 2, ...) *_* (underscore):: null register, always empty *:* (colon):: prompt history register holding the last 100 commands entered at the interactive prompt, except for commands starting with a space. == Integer registers Registers *1* to *9* hold the grouped sub-matches of the regular expression used to make the last selection. Example: applying the following regular expression to the date of the day would put the day of the week in register *1*, the month in register *2*, and the day of the month in register *3*, but select the entire date: -------------------- (\w+) (\w+) (\d+) .+ -------------------- == Marks When a register is used to store a set of selections with the *Z* key (see <>), the selections are stored as a list of spans, in a format similar to `%val{selections_desc}` (see <>). However, the very first item of the list is of the form: ------------------------------------------ @@

------------------------------------------ with: *buffer name*:: `%val{buffile}` of the buffer selections relate to *timestamp*:: `%val{timestamp}` at which the selection applies to *main sel index*:: 0-based index of the main selection