Files
typewriter/docs/v0.3-editing.md
Julien Calixte 55a8d21e0f docs(macroplan): split each version into its own page
Move each version's scope checklist and status out of the monolithic
macroplan into a dedicated docs/vX.Y-<slug>.md page; macroplan keeps the
source block, the rollup status, and a one-line summary + link per
version. v0.1 reuses its existing product/technical pages.

Also drop the "Optional column ruler at 80" requirement from v0.6.
2026-07-12 02:10:29 +02:00

1.7 KiB

v0.3 — Vim editing

Part of the Typoena macro plan. Requirements and targets: qfd.md. Load-bearing decisions: adr.md.

Status: COMPLETE in core 2026-07-11, host-tested (65 editor + 28 keymap tests) and partially smoke-tested on the panel 2026-07-11. The three remaining pieces landed together: a single unnamed register with y/yy/p/P (and x/d/c filling it, so ddp moves a line), undo/redo (u/Ctrl-r, snapshot-based, bounded to 100 groups in PSRAM — a whole Insert session undoes as one group), and . repeat (keystroke-recorded, so it replays an insert session like ciwfoo<Esc>). The d/c operator grammar and text objects had already landed ahead of schedule. On device, dd, yy, and Ctrl-r confirmed good; the one issue found was that a multi-line paste near the bottom left its later lines below the foldadjust_scroll only kept the caret's (first) pasted line visible. Fixed by a reveal() that scrolls the end of the pasted block into view while the caret stays on its first line (reflash to re-confirm on panel).

  • x dd, dw dd d$ (✓); yy p P (✓) and . repeat (✓) — register + a keystroke-recorded last-change both landed 2026-07-11
  • Undo / redo (u, Ctrl-r) — snapshot history bounded to 100 groups in PSRAM; one Insert session = one undo group
  • Numeric prefixes (3dd, 5j)
  • Ahead of schedule: c change operator + text objects (ciw, di(, ca", … — inner/around, nesting-aware)

Known limits (deferred): . drops a leading count (3x then . deletes one; a count inside an operator like d2w is kept); no named registers; . after an aborted operator (d<Esc>) is a no-op.