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
| Key | Action |
|---|---|
| j/k · ↓/↑ | One frame down / up |
| nj/nk | n frames in that direction |
| gg/ngg | First frame; with a count, the nth frame of the list |
| G · End | To the end and back to LIVE — the view follows new frames again |
| Home | To the first frame of the current view |
| H/M/L | Top / middle / bottom visible frame |
| zz/zt/zb | Scroll the current frame to the middle / top / bottom of the view |
| PgUp/PgDn | Page up / down; with a count, several pages |
Searching
| Key | Action |
|---|---|
| / · Ctrl+F | Open or close the search bar, search forward |
| ? | Open the search bar, search backward — n and N then swap direction |
| n/N | Next / previous hit across all active searches; with a focused search chip, only through its hits |
| ]s/[s | Focus the next / previous search chip, wrapping around; Esc releases the focus |
| * | Search for the label of the selected frame |
Marks and jumps
| Key | Action |
|---|---|
| ma–z | Mark the current frame in register a–z — doing it again removes the mark |
| `a–z | Jump to the next mark in that register |
| Ctrl+O/Ctrl+I | Back / 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
| Key | Action |
|---|---|
| v | Visual mode on / off — the selection grows from the anchor with every move |
| gv | Restore the last visual selection |
| o | In visual mode: swap anchor and cursor to extend the other end |
| y | Open the copy menu for the selection (see below) |
With the mouse
| Key | Action |
|---|---|
| Shift+click | Select all frames between anchor and click |
| Ctrl+click | Add a single frame to the selection, or remove it |
| Ctrl+Shift+click | Add the same range to the existing selection |
| click + drag | Start 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:
| Key | Action |
|---|---|
| yl | Labels only — one line per frame |
| yd | Labels and details as compact, nested JSON |
| yj | Full JSON with raw bytes and field descriptions |
| yy | Copy in the format used last time |
| ↑/↓ · Home/End | Move in the menu |
| Enter/Space/y | Pick the highlighted entry |
| Esc/Tab | Close 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.
| Key | Action |
|---|---|
| SpaceSpace · Spacel | Toggle LIVE / STATIC immediately, without waiting |
| Spacepn | Show or hide port tile n, counted as in the toolbar. While Space is waiting, the tiles show their numbers. |
| SpaceP | Show all ports again |
| Spacef | Toggle 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 |
| Spacem | The 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
| Key | Action |
|---|---|
| j/k | Cursor one row down / up, with counts |
| h | Collapse the node, or go to its parent |
| l | Expand the node, or go to its first child |
| Enter | Expand or collapse the node |
| gg · Home | First row; with a count, row n |
| G · End | Last row |
Raw data strip
| Key | Action |
|---|---|
| h/l | One byte left / right |
| b/w | 16 bytes back / forward |
| 0 | Back to the start of the selected frame |
| j/k | Still 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”.