Skip to content

Latest commit

 

History

History
114 lines (83 loc) · 3.49 KB

registers.asciidoc

File metadata and controls

114 lines (83 loc) · 3.49 KB

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

<c-r><c>

when in insert mode or in a prompt, insert the value stored in the c register (single character)

"<c>

in normal mode, select the <c> 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, <a-p>, <P>, <a-P>, R and <a-R> (see :doc keys changes)

/ (slash)

default search / regex register, used by: /, <a-/>, ?, <a-?>, n, <a-n>, N, <a-N>, , *<a->*, s, S, <a-k> and <a-K> (see :doc keys searching). 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 :doc keys macros)

^ (caret)

default mark register, used by: z, <a-z>, Z and <a-Z> (see :doc keys marks and :doc registers marks)

| (pipe)

default shell command register, used by commands that spawn a subshell: |, <a-|>, ! and <a-!> (see :doc keys changes-through-external-programs). 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 :doc keys marks), the selections are stored as a list of spans, in a format similar to %val{selections_desc} (see :doc expansions value-expansions). However, the very first item of the list is of the form:

<buffer name>@<timestamp>@<main sel index>

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