Cheatsheet
The mouse
| left-click | select, and focus the pane. On a tag: type there. |
| middle-click | Exec the word or selection: a builtin, else a shell line. |
| right-click | Look: open the file, address, directory or URL, else find the word’s next place. Resting the pointer tints what right-click would take. |
| sweep | drag middle-click or right-click to Exec or Look exactly what you swept. |
| grip | drag the box left of a tag: up/down resizes, onto another column moves the pane. A column’s right edge drags its width. |
Chords: hold the first, click the next
| hold left, click middle | cut the left-click selection |
| hold left, click right | paste over it |
| hold left, click middle, then right | copy: cut, then paste back, left-click still down |
| hold middle, click left | Exec the word with the left-click selection as argument (Grep on a selected name) |
| hold middle, click right | cancel the sweep (hold right, click middle too) |
Over a program that takes the mouse, Shift swaps: Shift-left-click selects, Shift-middle-click goes to the program. One button: Alt/Option-click is middle-click, Cmd/Super-click right-click, sweeps too (a terminal passes only Alt); Ctrl-click is a definition; a program that takes the mouse gets the plain click.
Tags
Newcol Joincol Find Grep Help Changelog Tutor Dump Themes Config Debug ExitNew Tty Find Grep Joincol DelcolSave Tty Collapse DelTty+bash Save Mode Filter Collapse DelTty PdfSections PdfTint Collapse DelDelover unsaved text refuses once; again discards.Delj: rows below.UndoRedoEditModework typed anywhere. → Guide
Look addresses
Typed anywhere, then right-click or Enter:
file:12 | line 12 |
file:12:5 | line 12, byte column 5 |
file:/re/ | next match after the selection (file:0/re/: first) |
:40 | the pane looked from, line 40 (:40:5, any address after :) |
~/x | home; also in Save, Restore, pardes ~/x |
@p3:12 | pane 3 by serial, a terminal’s lines too |
src/ | a directory: a pane listing it; Get reads it again |
Addresses are sam’s: #n, /re/, ?re?, $, a,b. → Reference: look and exec
Keys: normal mode
Helix-style: motions select, then an edit acts on the selection. Mode box: blank normal, ^ insert, $ raw terminal. Every helix key: its keymap.
| h j k l w b e | move; words select |
| gg ge | first line, last line |
| gh gl ^ | line start, end, first non-blank |
| x v % | line, character select, all |
| ; | collapse to the cursor |
| d c y | delete, change, yank |
| p P R | paste after, before, replace |
| u U | undo, redo |
| i a I A o O | insert; Esc back to normal |
| s S | regex: a cursor per match, split |
| C , | cursor on next line; keep primary |
| / n N | search, next, previous |
| mi mm | textobject, matching bracket |
| | | pipe each selection through the shell |
| gd gr | definition, references (language server) |
| Ctrld Ctrlu | half page down, up |
| Enter Tab | Look, Exec the selection (like right-click, middle-click) |
| : | to the pane’s tag and back |
Keys: panes
| Ctrlw h j k l | then a direction: focus a neighbour (not in insert or raw $) |
| Esc | back to the previous pane (raw: only at a prompt with nothing typed; insert: to normal) |
| ShiftEsc | back to the previous pane from any mode, with the kitty keyboard protocol or in the GUI; elsewhere a plain Esc |
| Ctrlo Ctrli | jump history back, forward; this file first. Ctrli is Tab without the kitty protocol: SPCji |
| Altn | new terminal below |
| Altc | move the pane to a new column |
The leader: SPC in normal mode
| SPC? | Help: every builtin |
| SPCfs | Save |
| SPCfn | New |
| SPCff | Find |
| SPCfg | Grep |
| SPCfr | Recent |
| SPCfc | Config |
| SPCd | Del |
| SPCnt | Tty |
| SPCn9 | Tty9p |
| SPCwh | focus left |
| SPCjj | Last |
| SPCjl | Jumplist |
| SPCy | clip yank |
| SPCp | clip paste |
| SPCtt | Themes |
| SPCtn | NextColor |
| SPCtw | Wrap |
| SPCcn | Newcol |
| SPCcp | Placement |
| SPCsd | Dump |
| SPCsr | Restore |
| SPCsa | Attach |
| SPCsD | Detach |
| SPCht | Tutor |
| SPChm | Messages |
| SPCq | Exit |
Terminals and commands
- Ctrlb: raw (
$) or normal.Modecycles raw, normal, insert.Filter,Tty+bash. - middle-click on a non-builtin line runs it in a command pane:/home/me/src (make) exit 0
Kill Save Collapse Del Killmakestops it;Exitquits.Replpython:.pyclicks go to it.
Reviewing diffs
git diff output is a diff: right-click on a file line, an @@ or a line’s +/- jumps there. → Guide: Reviewing diffs
Finding things
Sessions
pardes --detach=work; --attach=work or Attach work; Detach leaves it running. → Guide: Sessions
Config
Config (SPCfc): ~/.config/pardes/init, a builtin a line (Theme atelier). DumpConfig: every setting. Dump / Restore: the workspace. → Guide: Config
Themes
Themes lists them; Theme name; NextColor ThemeFile x.zon. → Themes
The virtual filesystem (9P)
Pane shells get $PARDES_9P (the socket) and $PARDES_PANE (their own pane); a command clicked in a pane also gets $winid, the pane it was clicked in.
9ns --mntgen # then m=$PARDES_MOUNT in every pane9p -a "unix!$PARDES_9P" read index/ ├── index a line per pane ├── look write: aLook├── exec write: anExec├── log events; follow waits └── pane/ ├── new open: a new pane └── <n>/ ├── addr where data reads, writes ├── ctl builtins:Save,Edit… ├── body its text (>> appends) ├── data the text at addr ├── look aLookhere └── exec anExechere
echo notes.txt:12 > $m/pane/$n/lookecho /foo/ > $m/pane/$n/addr; printf bar > $m/pane/$n/dataecho 'Edit ,x/foo/c/bar/' > $m/pane/$n/ctlexec 3<>$m/log; echo follow >&3; cat <&3pardes FILE opens it here; EDITOR='pardes --wait'. → Reference