mirror of
https://github.com/mawww/kakoune.git
synced 2024-11-10 13:25:25 +03:00
109 lines
3.1 KiB
Plaintext
109 lines
3.1 KiB
Plaintext
= 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 <<keys#changes, `: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 <<keys#searching, `:doc keys searching`>>)
|
|
|
|
*@* (arobase)::
|
|
default macro register, used by:
|
|
*q* and *Q*
|
|
(see <<keys#macros, `:doc keys macros`>>)
|
|
|
|
*^* (caret)::
|
|
default mark register, used by:
|
|
*z*, *<a-z>*, *Z* and *<a-Z>*
|
|
(see <<keys#marks, `:doc keys marks`>>
|
|
and <<registers#marks, `:doc registers marks`>>)
|
|
|
|
*|* (pipe)::
|
|
default shell command register, used by commands that spawn a subshell:
|
|
*|*, *<a-|>*, *!* and *<a-!>*
|
|
(see <<keys#changes-through-external-programs, `:doc keys changes-through-external-programs`>>)
|
|
|
|
== 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+) .+
|
|
--------------------
|
|
|
|
== Marks
|
|
|
|
When a register is used to store a set of selections with the *Z* key (see
|
|
<<keys#marks, `:doc keys marks`>>), the selections are stored as a list of
|
|
spans, in a format similar to `%val{selections_desc}` (see
|
|
<<expansions#value-expansions, `: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
|