= 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 <>) *@* (arobase):: default macro register, used by: *q* and *Q* (see <>) *^* (caret):: default mark register, used by: *z*, **, *Z* and ** (see <>) *|* (pipe):: default shell command register, used by commands that spawn a subshell: *|*, **, *!* and ** (see <>) == 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):: last entered command == 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+) .+ --------------------