Terminal modes
Development reference · View source
| Mode | Keys go to | Shown as |
|---|---|---|
| Insert | The program, except Runyte’s few exceptions | [insert] in the pane title |
| Live Normal | Runyte; the screen keeps updating | No title marker |
| Normal/review | Runyte; a frozen snapshot you can navigate and copy | Review marker in the title, grayed text |
INSERT ──Ctrl-\──▶ live NORMAL ──Ctrl-\ or a review command──▶ NORMAL/review
▲ │ │
└──────── i, a, o, or another terminal insert key ◀──────────────┘
The title answers whether typing reaches the child, so NORMAL is unmarked: the mode line already says it.
Terminal Insert mode
Every key belongs to the program except:
| Key | Effect |
|---|---|
Ctrl-\ | Leave to live Normal mode |
Ctrl-w | Start the window prefix |
Ctrl-h/j/k/l | Move between panes, only with editor.fast_pane_keys on |
Shift-Left / Shift-Right | Visit the previous / next running session, in mux mode (remappable) |
Escape,Ctrl-c,Ctrl-o,Space, and ordinary keys reach the child unchanged.- Window keys from a terminal.
Ctrl-w h/j/k/land their control-key aliases move to another pane at once.Ctrl-w v/ssplit, leaving the child live in the original pane; the new pane opens the working-directory explorer, asSpace Edoes.Ctrl-w f/ztoggle full-screen and zen from terminal Insert, live Normal, Normal/review, and Select without changing the mode. BareCtrl-w, or cancelling the prefix, keeps the current mode. Window actions never capture or discard a review snapshot. - Arriving at a pane. Every focus route — these keys, pane cycling, a
mouse click — enters a live terminal in Insert mode. A terminal with a
captured review stays in review until
i,a,o, or another insert key. A document reached from Terminal Insert starts in Normal. Ctrl-\spelling. On macOS, Runyte asks for unambiguous Ctrl-key reports without repeat and release events. A terminal without that protocol sends legacy control bytes, whereCtrl-\arrives asCtrl-4; both work.
Review mode
Review navigates and copies. It does not edit. The screen is a picture of the program’s text, and the program owns its own input area, so an edit to those cells would be an edit to a picture. Commands that would edit are refused rather than applied to the buffer behind the pane.
A second Ctrl-\, or the first review command used from live Normal, captures
the bounded output as an immutable snapshot. New output keeps arriving behind
it.
- Motions move a visible review caret and keep it within the viewport margin.
venters Select mode; motions then extend inclusively through both the start and end characters, in either direction.Escapecancels a selection.- The title marks review and newer output, and the reviewed text is grayed, so a frozen image never looks like a live program.
- Moving to another pane does not start review; returning to a reviewed terminal keeps its snapshot.
- A live terminal keeps its own colours. Alternate-screen review holds only the captured visible screen.
Pasting back into the program:
| Key | Sends | Afterwards |
|---|---|---|
p / P | Runyte’s selected register | Insert mode, so the next key (usually Enter) reaches the child |
Space c p / Space c P | The system clipboard | Stays in Normal mode |
u | One delete per character of the last paste | Undoes that paste |
- Both routes leave review first and write at the child’s real cursor, never into captured output.
uworks only while the paste is still the child’s last input: any key typed into the terminal ends it. It is refused for a paste that ended a line the child has already run, since what ran is the child’s. A shell at a prompt erases exactly the paste.
i leaves review and types again.