TRACE
EN
Trace UI · Keyboard

Drive the Trace UI with Vim keys

The analysis UI can be used entirely from the keyboard. It follows Vim — not just in which keys it uses: counts such as 5j and multi-key sequences such as gg behave the way they do there.

How it works

Counts

A number in front of a command repeats it: 5j moves five frames, 10gg jumps to the 10th frame of the list.

Multi-key sequences

A started sequence such as g, z or m waits for its second key. The status bar shows what is pending — like Vim’s showcmd.

Esc cleans up

Esc cancels a sequence, leaves visual mode, clears the multi-selection and releases the search chip focus — all at once. With a panel focused, the first Esc only returns its focus.

Where keys go

After the first click into the view, keys belong to the frame list. While a search, bookmark or trigger bar is open, you type there.

Moving

KeyAction
j/k · ↓/↑One frame down / up
nj/nkn frames in that direction
gg/nggFirst frame; with a count, the nth frame of the list
G · EndTo the end and back to LIVE — the view follows new frames again
HomeTo the first frame of the current view
H/M/LTop / middle / bottom visible frame
zz/zt/zbScroll the current frame to the middle / top / bottom of the view
PgUp/PgDnPage up / down; with a count, several pages

Marks and jumps

KeyAction
ma–zMark the current frame in register a–z — doing it again removes the mark
`a–zJump to the next mark in that register
Ctrl+O/Ctrl+IBack / forward in the jump list, with counts
'' · ``To the position before the last jump — twice toggles between both

The registers are the same as the bookmarks’; the keyboard is just a second way to them. A jump moves the cursor somewhere else instead of nudging it: gg, G, Home/End, H/M/L, n/N, mark jumps and clicks on chips. j/k, clicks in the list and scrolling are not jumps. The jump list keeps up to 100 positions and skips frames the current view does not show.

Selecting

KeyAction
vVisual mode on / off — the selection grows from the anchor with every move
gvRestore the last visual selection
oIn visual mode: swap anchor and cursor to extend the other end
yOpen the copy menu for the selection (see below)

With the mouse

KeyAction
Shift+clickSelect all frames between anchor and click
Ctrl+clickAdd a single frame to the selection, or remove it
Ctrl+Shift+clickAdd the same range to the existing selection
click + dragStart visual mode at the click; the selection follows the mouse

Copying

y, a right-click on a row or a long press opens the copy menu. The second key picks the format:

KeyAction
ylLabels only — one line per frame
ydLabels and details as compact, nested JSON
yjFull JSON with raw bytes and field descriptions
yyCopy in the format used last time
↑/↓ · Home/EndMove in the menu
Enter/Space/yPick the highlighted entry
Esc/TabClose the menu

In the menu, j picks JSON and does not move down — the keys are mnemonics (labels, details, JSON). Formats with details copy at most 200 frames, “labels only” up to 10,000.

Leader: the Space key

Space still toggles between LIVE and STATIC — and also starts further commands. From LIVE it pauses immediately; it only returns to LIVE when no second key follows within 600 ms.

KeyAction
SpaceSpace · SpacelToggle LIVE / STATIC immediately, without waiting
SpacepnShow or hide port tile n, counted as in the toolbar. While Space is waiting, the tiles show their numbers.
SpacePShow all ports again
SpacefToggle the filter of the focused search chip. Without focus: if any search filters are on, all go off, otherwise those of all active searches go on
SpacemThe same for the bookmark lists
Space+/-/=Move the divider between list and details by 5 % / reset it to 67 %

An unmapped second key is not swallowed: Space j pauses, then moves one frame. With ten or more ports, 1 briefly waits for a second digit; Enter completes it right away. Esc after Space cancels, as if Space had never been pressed.

Detail tree and raw data

gd hands the keys to the detail tree, gr to the raw data strip. The panel gets a frame and the status bar shows -- DETAILS -- or -- RAW DATA --. Esc or a click in the list returns the focus. This works in the desktop layout once a frame is selected.

Detail tree

KeyAction
j/kCursor one row down / up, with counts
hCollapse the node, or go to its parent
lExpand the node, or go to its first child
EnterExpand or collapse the node
gg · HomeFirst row; with a count, row n
G · EndLast row

Raw data strip

KeyAction
h/lOne byte left / right
b/w16 bytes back / forward
0Back to the start of the selected frame
j/kStill move the frames — the strip’s rows are ports, not positions

Good to know

German keyboard

` is a dead key there: for `a press `, then Space, then the letter. Easier is '' (Shift+#) — it does the same as ``.

Deliberately missing

Ctrl+W closes the browser tab before the page sees the key — so the divider commands live on Space. Ctrl++/- stays browser zoom, and there is no :e: the Trace UI shows exactly one session, chosen in the hub.

Finding this page again

In the Trace UI, the ••• menu at the top right links here under “Help”.