summaryrefslogtreecommitdiff
path: root/docs/selections.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/selections.md')
-rw-r--r--docs/selections.md15
1 files changed, 7 insertions, 8 deletions
diff --git a/docs/selections.md b/docs/selections.md
index 5b992cc4..0f000e2c 100644
--- a/docs/selections.md
+++ b/docs/selections.md
@@ -74,19 +74,18 @@ A parsed action has a scope (`modal.Normal.Action.scope`).
- An undo snapshot (`File.Snapshot`) holds the content and the PRIMARY
range. Undo puts the primary back and leaves the other ranges where they
were; helix restores the whole selection of that revision.
-- There is ONE register, `Pardes.yank`, written by `y`, `d` and `c` and read
- by `p`, `P` and `R`. A yank at several ranges joins their texts with
- newlines into it, and a paste puts that whole value at every range.
+- Registers (`Registers.zig`) hold one value per range. A yank under the
+ replay fills slot `Pardes.multi_index` of `multi_count`, and `p`, `P`, `R`
+ and insert `Ctrl-r` read slot i at range i, the last value standing in
+ for missing ones. `"<reg>` names the register (`Pardes.register` for the
+ length of one command); `_ # . % /` are computed or special and `+`/`*`
+ is the system clipboard. The acme chords and a paste into a terminal read
+ the default register joined by newlines.
- `Alt-.` repeats the last `f`/`t`/`F`/`T`. There is no `.` and there are no
macros.
## Where it differs from helix
-- Registers: helix keeps one value PER RANGE and pastes value `i` at range
- `i`; it has named registers (`"a`), special ones (`#` range indices,
- `.` the selection, `/` the search, `_` the black hole) and inserts a
- register in insert mode with `Ctrl-r`. None exist here (waiver
- `msel-yank-paste`).
- Insert mode: helix maps every range through each keystroke's edit, so a
range an `i`/`a` started from stretches over what is typed and keeps its
anchor. Here only the cursor cells move, and after Esc only the primary's