Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Keyboard shortcuts

? or F1 shows the keys of the screen you are on, grouped by task; F1 works in text fields too. In the help, / narrows the keys to those whose text matches, and Enter closes the help and presses the key on the selected line. datui man keys prints this page. The tables below hold every screen’s keys, with the longer description where the help shows one line.

Every screen

These keys work on every screen.

KeyAction
? / F1This screen’s keys. In a text field ? types, and F1 opens the help
Ctrl+OThe home screen, on the dataset left, its filter kept and selected (typing replaces it); abandons a load
Ctrl+Q / Ctrl+CQuit from anywhere; Ctrl+C quits from a text field too, where Alt+W copies
Click a fieldFocus a form’s field and act as Space: a checkbox flips, a choice steps, a picker opens, a button runs; a text field takes the cursor. A row of a list (a sort, a filter, a column) takes focus on the first click and acts on the second. A click on a picker’s line chooses it, on a tab switches to it, and on a key in the footer presses it. A click outside a dialog does nothing. The mouse is the terminal’s with display.mouse = false (or –mouse false); in most terminals Shift+drag selects text either way
Right-click a fieldStep a choice back, as ← does; else focus it

Help

? or F1.

KeyAction
↑ / ↓ (j/k)Move between the keys
EnterClose the help and press the key on the line, where help was opened
/Narrow to the keys whose text matches
EscClear the filter, then close

Table

Where a dataset opens.

Table · Explore

KeyAction
↑ / ↓ (j/k)Move the row cursor
← / → (h/l)Move the column cursor, frozen columns included; the columns scroll only when it would leave the screen
Shift+← / Shift+→A page of columns left or right, the cursor on the page’s first column
{ / }First column, last column
PgUp / PgDnA page up or down (Ctrl+B / Ctrl+F too)
Ctrl+D / Ctrl+UHalf a page down or up
Home / EndFirst or last row (G = End)
:The command line: digits go to that row (the prefix says row:), anything else runs as SQL or q, as the prefix says; Ctrl+T switches. With a query in effect it opens on the query’s text
gGo to a column by name
/ (f)Find text, a regex, or letters in order in the view; matches on screen light up as you type, and Enter takes the cursor, column cursor and all, to the first at or after its row. f opens it too
n / NNext / previous match from the cursor’s cell, wrapping round the view
EnterOn a row of a by query or a SQL GROUP BY, drill down to its rows (Esc comes back); elsewhere, inspect the row
SpaceInspect the row: every field, each value whole and exact (Esc or Space closes)

Table · Shape

KeyAction
[ / ]Sort by the cursor’s column, [ ascending and ] descending, replacing the sort in effect; the same key again on that column removes it. The s sidebar adds secondary sorts
sOpen the Sort & Filter sidebar (tabs: Columns, Filters), on the cursor’s column
+ / -Filter on the cursor’s cell: + keeps the rows with its value, - drops them (a null cell: the nulls). Each adds a filter to the Sort & Filter sidebar, joined with “and”; the value is the cell’s exactly as stored
rReverse sort order (sorted columns carry a direction mark in the header); with no sort, reverse the row order
H / LMove the cursor’s column one place left or right, the cursor with it; a frozen column moves among the frozen ones. R puts the order back
pPivot or melt
SDraw a sample of the source into memory: the step under the query, filters and sort, which then run over it. The rows show as they arrive (Esc stops, keeping them); the footer says sample 100,000 of 36.8M. Analysis, charts and export read the sample. S again edits it; Method No sample, or R, takes it away
RReset table: clear the sample, query, filters, sort, column order, hidden columns and widths, frozen columns, pivot/melt, drill-down and the applied view

Table · Analyze

KeyAction
FValue counts of the cursor’s column: each value’s rows, percent and a bar, with a summary
aOpen Analysis. In a Data Quality evidence drill a is disabled; Esc returns to the observation
cChart the view
iOpen the Info panel (tabs: Schema, Resources, Partitions, Notes). H on its Schema tab reads a CSV’s first row as data, or as column names

Table · Output

KeyAction
eExport the view to a file
yCopy to the clipboard (cell, row, view or table); a cell is the cursor’s
vThe saved views list
VApply the best-matching view (or open the list)

Table · Display

KeyAction
#Row numbers on or off: each row’s place in the source, kept through a sort or a filter (a text file’s line numbers). On for text and logs; display.row_numbers sets it
,Number formatting (digit grouping) on or off
DThe type row under the headers on or off
< / >The cursor’s column 4 cells narrower or wider
= / wFit the cursor’s column to the rows on screen; w puts it back to automatic width
bA binary file read through a format spec: read it again with another spec. Clears the query, filters and sort
TA file of several tables (a workbook’s worksheets, a database’s tables, a format spec’s record types, a Hugging Face cache’s splits): pick another to open in place of this one, as –table names it. Clears the query, filters and sort; a saved view for the table applies. On a file of one table, says so
tFollow the file as it grows (CSV, TSV, PSV, NDJSON). Reads it again, so the query, filters and sort are cleared; while following, t pauses and resumes, and Esc stops

Table · Go

KeyAction
qBack to the home screen when the dataset was opened from it; otherwise quit
QQuit
EscLeave a drill-down; stop a find, a sample being drawn (its rows so far stay) or a follow

Table · Mouse

KeyAction
ClickThe cursor to the cell; on a header, its column
Double-clickEnter on the row
Double-click a headerDouble-click a column’s header to sort by it, as [ and ] do: ascending, then descending, then back to no sort, replacing the sort in effect
Double-click a header's edgeDouble-click the gap right of a column’s header to fit the column to the rows on screen, as = does; the column cursor moves to it, and nothing is sorted
Wheel↑ / ↓, three rows a notch; the same in help, the inspector and the sidebars
Shift+wheel← / →, the column cursor (a sideways wheel too)
Click a keyPress a key the footer shows; a click on the filters and sort presses s, on query presses :
Drag a headerDrag a column’s header onto another column to move it there, as H / L do; a rule on the header marks where it lands
Drag a header's edgeDrag the gap right of a column’s header to set its width by hand, as < / > do, from 4 to 240 cells
Right-clickRight-click a cell: the cursor goes there and a menu lists the keys that act on it (+, -, F, [, ], y, Space), each with its key. ↑ / ↓ and Enter, or a click, run a line as its key does; Esc or a click elsewhere closes it

Home screen

datui with no path, or Ctrl+O from anywhere.

Home screen · Explore

KeyAction
↑ / ↓Move the selection (Ctrl+P / Ctrl+N too)
Ctrl+↑ / Ctrl+↓Previous or next section
PgUp / PgDnA screenful, stopping at the first and last
Home / EndThe first or last row. The filter has no cursor to move: it is edited at its end
← / →Fold or unfold a section; → on a directory or a file of tables goes inside it, and on a file a format spec reads as record types lists them, one row each
SpaceWhile the filter is empty: fold or unfold the section header under the cursor. With a filter typed, it types
TabCycle the sort; the footer names the order in effect when it has room

Home screen · Go

KeyAction
EnterWhat the footer says on this row: “Open all” reads a whole directory as one table, “Inside” steps into it, “Open” loads a file, “Look” finds out first. A catalog bookmark, indented under its dataset, opens whole. On a section header, fold or unfold it; on the More row, show the rest; on the hidden-files row, show them
BackspaceDelete a filter character; on an empty filter, up a level (from a bucket, back to its cloud source; from the top of a catalog’s remote dataset, back here)
EscBack out one layer: the path prompt, the filter (onto the first dataset), the directory (back to the row it was entered from), then to the open table

Home screen · Find

KeyAction
(type)Narrow by name or column; fuzzy, so “sal” finds “sales”. What you open often ranks first. Typing also searches below the directory you are inside and the listed bucket names; matches appear under “Found”
~While the filter is empty: type a path or URL by hand. The list shows the directory being typed, narrowed by the name after the last /. The prompt is a plain editor: characters, Backspace, Ctrl+U clears, The first name that matches is picked. Tab completes the one name left or what the names share, or a name picked further down; ↑ / ↓ pick a name, and ↑ from the first takes the path as typed; Enter opens the picked name or the typed path: a file opens, a directory is gone inside; Esc closes. s3://, gs:// and az:// complete from buckets and prefixes already known. With a filter typed, ~ types into it
Ctrl+UClear the filter or path input
Ctrl+RList again what is on screen

Home screen · Manage

KeyAction
Ctrl+AShow or hide files datui cannot read; inside a SQLite database, its internal tables
Ctrl+XShow the local file under the cursor as bytes, in the hex view, whatever datui would read it as
Ctrl+DAdd the dataset or directory under the cursor to catalog.toml, listed under My datasets; on a row from catalog.toml, forget it. A heading stands for the directory it lists. Only catalog.toml is written; another catalog is hidden with home.hide
Ctrl+EOpen the Documentation view of a catalog row, of a place inside one, or of a file whose format spec documents it: description, publisher, license, links, record types, columns with units and value legends, bookmarks. A catalog’s description, link and column notes stand over the spec’s. Ctrl+E here is not readline’s end of line: the filter is edited at its end
DeleteForget the highlighted recent entry, or a whole place after confirming, or a row from catalog.toml, or hide a cloud source. On the Example datasets heading, hide them until datui cache clear, after confirming
Shift+DeleteForget every recent entry, after confirming

Home screen · Mouse

KeyAction
ClickSelect the row; double-click is Enter
WheelMove the selection three rows, stopping at the ends

Documentation

Ctrl+E on the home screen, on a catalog row or a file a format spec documents.

Documentation · Read

KeyAction
↑ / ↓ (j/k)Move the cursor a line
PgUp / PgDnA page
g / GThe first or last line (Home / End too)
Enter / Space / →Open or close the value legend of the column under the cursor: a catalog’s values, or a spec’s enum
oOpen the link on the cursor’s line in the system browser. Only http and https links open, and only after a question showing the whole URL (Enter opens, Esc does not). Off over SSH or without a display: y copies the link instead
yCopy the link or value on the cursor’s line, whole, however it is cut on screen
Esc / q / ←Back to the home screen

Command line

: at the table.

Command line · Run

KeyAction
(digits)Digits alone go to that row, and the prefix says row: (:0 Enter is the top)
EnterGo to the row, or run the query as the prefix says, sql: or q:. Reopened with a query in effect, the line holds its text, selected: typing replaces it, arrows edit it
Ctrl+JRun, the same as Enter
Ctrl+TSwitch between SQL and q, keeping what is typed; the choice is remembered. [query] default_mode sets the first
EscClose

Command line · Edit

KeyAction
TabComplete a column name, or df in SQL; again for the next match. The line under the input lists the names that fit
Alt+EnterSQL: start a new line
↑ / ↓Earlier and later queries from the history (Ctrl+P / Ctrl+N too; SQL and q keep their own). In SQL over several lines, they move between lines first
Ctrl+U / Ctrl+KDelete to the start or end of the line
Ctrl+Z / Ctrl+RUndo, redo

Find

/ (or f) at the table.

Find · Find

KeyAction
(text)What to find: text (any case until a capital is typed), a regex with Ctrl+R, or letters in order with Ctrl+T. Matches in the rows on screen light up as you type, and the line says how many are on screen
EnterFind: the cursor, column cursor and all, goes to the first match at or after its row, reading past the rows on hand when it must (the footer counts the rows read; Esc stops). On an empty field, clear the find
Ctrl+GKeep only the rows with a match, as a filter: the footer and the Sort & Filter sidebar show it, and removing it there (or R) brings the rows back
Ctrl+RRegex on or off
Ctrl+TLetters in order on or off: smth finds Smith
Ctrl+LOnly the column cursor’s column, or every column shown
↑ / ↓Earlier patterns (Ctrl+P / Ctrl+N too)
EscCancel

Find · At the table

KeyAction
n / NNext / previous match from the cursor’s cell. Past the last match the find comes round to the first, and the footer says so. Each one typed while a find reads runs in turn; Esc stops them all
/Find again, the last pattern ready to edit
EscClear the find (or stop one still reading)

Go to column

g at the table.

Go to column · Go

KeyAction
(type)Narrow to the names that contain it
↑ / ↓Move
EnterGo. The column cursor moves to it. A column already whole on screen stays where it is; another becomes the first after the frozen ones, or lands on the last page when it is there
BackspaceDelete a character (Ctrl+W a word, Ctrl+U all)
EscClose without moving

Inspector

Space at the table.

Inspector · Fields

KeyAction
↑ / ↓ (j/k)Move between fields
Home / EndFirst and last field
PgUp / PgDnA page of fields
← / → (h/l)Previous and next row; the table’s cursor moves with it
Tab / Shift+TabInto the value, to scroll and find in it. Nothing moves: the panes are split by what they hold, not by where the cursor is
EnterOn a group’s row, its rows, as at the table. Else open a struct, a list, or text holding a JSON object or array; or read a field the table’s rows do not hold (hidden and binary columns)
rOn a group’s row, read a field the rows do not hold
/Find a field by name, then by value: type to narrow, Enter or ↓ keeps the list narrowed, Esc clears it
fNulls: shown or hidden (null and empty fields); comparing, only the fields that differ
sOrder: the table’s, A-Z, or nulls last
cCompare: a column for the next row, or the pinned one
mPin this row to compare others with; again to unpin
Esc / SpaceClose. Esc backs out one level at a time: a find first, then Compare, then the inspector

Inspector · Output

KeyAction
yCopy the value as its view shows it
YCopy the whole row as one JSON object
eThe value’s next view, where it has more than one
wWord wrap or hard wrap for long text
oOpen the value in another program

Inspector · Value

KeyAction
↑ / ↓ (j/k)Scroll a line
PgUp / PgDnScroll a page
Home / EndTop and end, at once however long the value
/Find in the value; n and N go to the next and last place
e, w, y, oAs in the fields
Esc / TabBack to the fields (Shift+Tab too); Esc clears a find first

Inspector · Nested

KeyAction
Enter / → (l)Open the focused item
Tab / Shift+TabInto the item’s value; not in an empty level
Esc / ← (h)Up a level; at the row, Esc closes
yCopy the focused item: text as itself, a JSON object or array indented

Info panel

i at the table.

Info panel · Panel

KeyAction
← / → (h/l)Previous or next tab, from anywhere in the panel; Shift+Tab and Tab do the same. The panel is a viewer, not a form: its body always has the keys
↑ / ↓ (j/k)Schema, Notes or Documentation tab: move the cursor. Model, Audio, MIDI, Metadata and format tabs: scroll the list
PgUp / PgDnModel, Audio, MIDI, Metadata and format tabs: scroll the list a page
Home / EndModel, Audio, MIDI, Metadata and format tabs: the top or the end of the list
EnterSchema tab: change the column’s type, with the names and formats a format spec’s type takes. Notes tab: take the offer on the note, where it has one. Documentation tab: open or close the value legend of the column under the cursor. Excel or SQLite tab: open the worksheet or table under the cursor in place of this one, as T does
oDocumentation tab: open the link on the cursor’s line in the system browser. Only http and https links open, and only after a question showing the whole URL. Off over SSH or without a display
yDocumentation tab: copy the link or value on the cursor’s line, whole, however it is cut on screen
HSchema tab, CSV, TSV, PSV: read the first row as data, under column_1, column_2, …; again to read it as column names. Reads the file again, so the query, filters and sort are cleared, and the panel closes
cA dataset of more files than read.exact_count_files shows a row count estimated from a sample of its footers; c reads every footer for the exact count. The footer shows how far it has got, and Esc at the table stops it
xShow the file’s bytes in the hex view
Esc / iClose the panel

Value counts

F at the table.

Value counts · Explore

KeyAction
↑ / ↓ (j/k)Move
PgUp / PgDnA page
Home / EndFirst and last row
← / → (h/l)The previous or next column; the table’s column cursor moves with it
EnterThe rows holding the value, as a drill-down; Esc there comes back here
sSort by count or by value
cBetween a number column’s histogram, binned from the counts, and the listing of its values. A number opens as its histogram
aCount every row, when the counts are of a sample
tWhile following a file, count again with the rows that arrived since; the bar says how many

Value counts · Output

KeyAction
yCopy the counts as TSV: every value, its count, percent and cumulative percent
eExport the counts to a file
EscBack to the table; while every row is being counted, stop that and keep the sample

Sort and filter

s at the table.

Sort and filter · Sidebar

KeyAction
Tab / Shift+Tab (↑ / ↓)Next or previous field, wrapping; a field the form does not offer right now is skipped. The arrows move from the moment the dialog opens
← / →On the tab bar: switch Sort & Filter / Columns. On a sort: flip its direction. On a filter: and / or. On a column: step its sort (none, ascending, descending). h/l too
SpaceOn a sort: flip its direction. On a filter: edit it (column, operator, value). On “add sort”: pick a column to sort by, last and ascending. On “add filter”: a new filter, starting on the table’s column cursor. On a column: step its sort
EnterApply everything staged and close, from any row (in the filter editor Enter takes the step; Ctrl+J applies)
Ctrl+JApply from anywhere, including mid-edit (the row in progress is saved). Ctrl+Enter does the same, on a terminal that tells it from Enter
EscClose an open picker or filter editor; otherwise cancel and close, discarding what is staged. Reopening shows what is applied

Sort and filter · In effect

KeyAction
[ / ]Move the focused sort earlier or later in the sort order, or the focused filter in the list
d / DelRemove the sort or filter
CRemove every sort and filter

Sort and filter · Columns

KeyAction
(type)Narrow the column list, when the find field is focused. ↓ from find goes to the list, on the table’s column cursor
PgUp / PgDn, Home / EndA page of columns, or the first or last; ↓ stops at the last column
SpaceCycle the column’s sort: none → ascending → descending (← steps back). Each column carries its own direction
1-9Put the column at that place in the sort order; 0 removes it (a digit past the end of the order says so)
DelRemove the column from the sort
[ / ]Earlier or later in the sort order
+ / - (= / _)Move the column’s display position
LFreeze this column and every column up to it at the left edge; on a column already frozen, pull the boundary back
vShow or hide the column (it keeps its place, dimmed)
< / > (, / .)Make the column 4 cells narrower or wider. A number column is never narrower than its numbers
fFit the column to the rows on screen, its name up to the automatic limit
wBack to the automatic width
CClear the staged sort, order, locks, hidden columns and widths

Sort and filter · Filter editor

KeyAction
(type)Narrow the column or operator list. The operators are those the column’s type takes
EnterPick the column (type to narrow, Enter chooses), the operator the same way, then type the value and Enter saves the row. Tab, → and Space also choose at the column and operator steps; Shift+Tab steps back; ↑ / ↓ move in the lists
EscEnd the edit, and only the edit

Pivot and melt

p at the table: the form on the left, a live preview of the result on the right (above and below on a narrow terminal).

Pivot and melt · Form

KeyAction
Tab / Shift+Tab (↑ / ↓)Next or previous field, wrapping; a field the form does not offer right now is skipped. The arrows move from the moment the builder opens
← / →On the first row: switch Pivot and Melt. On the aggregation, strategy or type: the previous or next value. On a single column row: the previous or next column. In a text field: move the cursor. h/l too, outside text fields. The preview follows each change
SpaceOn a column row: open its picker, scoped to that row; typing narrows it. On a choice: its next value, wrapping
EnterApply the reshape the preview shows, to the whole view, from any field
EscClose without applying; while a pivot is computed, stop it and keep the builder

Pivot and melt · Picker

KeyAction
(type)Narrow the column list
↑ / ↓Move; typing narrows
EnterChoose; on a several-choice row, done
SpaceChoose; toggle a column on a several-choice row
EscBack out of the picker; the toggles made since it opened are undone (Enter keeps them)

Chart

c at the table: a chart chosen from the cursor column’s type.

Chart · Shelves

KeyAction
1-7Switch the chart type directly: Line, Scatter, Bar, Histogram, Box, KDE, Heatmap ([ / ] step). The shelves keep what the new type takes. On Rows, digits type a sample size instead
[ / ]Previous or next chart type
Tab / Shift+Tab (↑ / ↓)Next or previous row of the panel, wrapping (j/k too). A shelf the type does not use is dimmed and skipped
Space / EnterOn X, Y or Color: open its picker. On the line under Color: pick the values that get a series, by rows. On an option: toggle it or take its next value. The panel applies as it changes, so Enter acts as Space does, except on Rows: Space switches between Sample and Every row, and Enter reads what the row says
← / → (h/l)Step the type, the time bucket (day, week, month, quarter, year), the aggregate (count, distinct, sum, mean, median, stdev, quantile, min, max, first, last) and a quantile’s percentile, cumulative, bins, range or order; on Rows, switch between Sample and Every row (read on Enter); on a shelf that takes one column, the previous or next column; on the line under Color, turn Other (every value without a series) on or off; flip a toggle
+ / -Bins or bandwidth
0-9On Rows: type a sample size, like 50000, 50,000, 50k, 250k or 2m. Backspace edits, Enter reads it, Esc puts the row back as it was. A size of at least the table’s rows is Every row. Nothing is read until Enter or focus leaves the row
gGrid on or off at the labeled ticks: Line, Scatter, Histogram, Box and KDE. [analysis] chart_grid sets where it starts
EscBack to the table; on Rows with a change waiting, put the row back first

Chart · Plot

KeyAction
xLine and Scatter: the plot takes the keys, and a crosshair reads out x and every series’ value under the plot. ← / → (h/l) step to the next point or column, Home/End go to the ends; x, Tab or Esc hand the keys back to the panel. A click on the plot puts the crosshair there
eExport the chart to PNG, SVG or PDF, with a title, notes and source. Needs the chart’s shelves filled first
tWhile following a file, draw again with the rows that arrived since; the bar says how many

Chart · Picker

KeyAction
↑ / ↓Move; typing narrows
Enter / SpaceChoose; on a line or scatter chart’s Y and on the Color values, Space toggles one in or out (up to 10, fewer on a terminal of fewer colors)
Tab / Shift+TabChoose and move to the next or previous row
EscBack out of the picker alone

Chart · Export dialog

KeyAction
Tab / Shift+Tab (↑ / ↓)Next or previous field: Path, Format, Style, Size, Width, Height, Legend, the marks (Opacity and Point size for a scatter, Line width for a line, Y from zero for a line), Title, Description, Notes, Source, Byline, Recipe
← / →Step the format (PNG, SVG, PDF), the style (Light, Dark, Transparent), the size (Slide 16:9, Document, Square, Single column, Double column, Custom), the legend (line ends, a corner, off), a scatter’s point opacity (Auto, 100%, 50%, 20%) and size (Small, Medium, Large), a line’s width (Thin, Normal, Bold), Y from zero, or the recipe (Include, Omit). Typing a width or height makes the size Custom
Ctrl+P / Ctrl+NEarlier or later paths in the path field
EnterExport, from anywhere in the dialog. A path ending .png, .svg or .pdf takes that format; any other gets the format’s extension after it. An existing file asks Overwrite / No, starting on No; ←/→ (h/l) or Tab pick, Enter confirms, and declining returns to the filled dialog
EscBack to the chart

Analysis: Describe

a at the table.

Analysis: Describe · Explore

KeyAction
Tab / Shift+TabBetween the results and the tools
↑ / ↓ (j/k)Rows, or the sidebar’s tools
← / → (h/l)Scroll the statistics; the header counts those out of view
Home / EndFirst or last row
PgUp / PgDnA page
EnterOpen the sidebar’s tool and move into its pane. The first run on a dataset starts in the Sample form, where Enter runs it; later tools reuse that sample. Results last until the view changes: closing and reopening shows them again
EscCancel a run in progress; otherwise from the results back to the tools, and from the tools close the analysis view

Analysis: Describe · Sample

KeyAction
sChoose the sample every tool reads: which rows, how they are picked, how many (typed, like 50000, 50k or 2m), the seed. Enter applies the form
vView the sample’s rows as a table; Esc comes back
rDraw another sample (when the result is a sample)
aRead every row instead, after confirming
tWhile following a file, read again with the rows that arrived since the results were read

Analysis: Distribution

Distribution in the Analysis sidebar.

Analysis: Distribution · Explore

KeyAction
↑ / ↓ (j/k)Rows, or the sidebar’s tools
← / → (h/l)Scroll the statistics; the header counts those out of view
Home / EndFirst or last row
PgUp / PgDnA page
Tab / Shift+TabBetween the results and the tools
EnterOpen detail view for selected column (shows Q-Q plot and histogram); with the sidebar focused, open a tool
EscCancel a run in progress; otherwise from the results back to the tools, and from the tools close the analysis view

Analysis: Distribution · Sample

KeyAction
sChoose the sample every tool reads: which rows, how they are picked, how many (typed, like 50000, 50k or 2m), the seed. Enter applies the form
vView the sample’s rows as a table; Esc comes back
rDraw another sample (when the result is a sample)
aRead every row instead, after confirming
tWhile following a file, read again with the rows that arrived since the results were read

Analysis: Distribution detail

Enter on a column in Distribution.

Analysis: Distribution detail · Detail

KeyAction
↑ / ↓ (j/k)Compare the values with another family
Home / EndThe first or last family
sHistogram scale: linear or log
EscBack to the distribution table

Analysis: Correlation

Correlation Matrix in the Analysis sidebar.

Analysis: Correlation · Explore

KeyAction
Tab / Shift+TabBetween the matrix and the tools
↑ / ↓ (j/k)Matrix rows, or the sidebar’s tools
← / → (h/l)Matrix columns
Home / EndJump to the first pair (the first row’s second column) or the last (the last row’s next-to-last column); the matrix opens on the first
PgUp / PgDnA page
EnterOpen pair detail view (on a cell) or open a tool (sidebar); does nothing on a diagonal cell
mMethod: Pearson r or Spearman ρ, named in the title (both come from the one run, so it reads nothing)
EscCancel a run in progress; otherwise from the matrix back to the tools, and from the tools close the analysis view

Analysis: Correlation · Sample

KeyAction
sChoose the sample every tool reads: which rows, how they are picked, how many (typed, like 50000, 50k or 2m), the seed. Enter applies the form
vView the sample’s rows as a table; Esc comes back
rDraw another sample (when the result is a sample)
aRead every row instead, after confirming
tWhile following a file, read again with the rows that arrived since the results were read

Analysis: Correlation detail

Enter on a pair in the correlation matrix.

Analysis: Correlation detail · Detail

KeyAction
mPearson or Spearman
EscReturn to the correlation matrix. Resampling (r) works from the matrix, not from inside this detail

Analysis: Data Quality

Data Quality in the Analysis sidebar.

Analysis: Data Quality · Setup

KeyAction
↑ / ↓, TabMove between rows
← / →Change a short list’s choice
SpaceOpen the row: the Sample form, a list (type to narrow), Time roles, Intervals, Column intent or Expected
sThe Sample form; its Enter applies to Setup and returns there
pThe access plan: what a run reads
dRelease the rows runs kept and a full scan’s local copy, named on the Read rule; the next run that would reuse them reads again
EnterRun, from any row. A full read asks first; the report on screen or in the session cache is shown, not read again
EscDiscard every staged edit

Analysis: Data Quality · Setup lists

KeyAction
↑ / ↓Time roles: choose the role. Intervals: choose the pair. Column intent: choose the column. Expected: Windows, From, Before (Tab too)
← / →Time roles: choose the role’s column. Expected: choose the windows. Intervals: measure the pair or not
SpaceIntervals: measure the pair or not. Column intent: declare the column’s intent in a form
EnterDone
EscPut the list back as it was

Analysis: Data Quality · Report

KeyAction
← / → (h/l)Previous or next page
1 - 5Overview, Columns, Segments, Trends, Intervals
↑ / ↓ (j/k)Move, or scroll a tall finding
PgUp / PgDnPage; Home/End jump to either end
EnterOpen a finding, then its rows. On an empty page, open the setting it needs
c / tOverview: only one column’s or one type’s findings
oOverview: ranked, by rows, by rate
eSetup
sSetup, with the Sample form open
vView the sample’s rows; Esc returns
pThe access plan: what a run reads
rOn a sample, run again with a new seed
xExport the report to JSON or Markdown; nothing is read
Tab / Shift+TabBetween the result and the tools
EscBack one level: all findings again, then the tools, then close

Analysis: Data Quality · Segments

KeyAction
EnterA segment’s columns beside the one it is compared with, largest change first
oLargest change first, or back in order
bCompare with the highlighted segment
KeyAction
EnterA line’s bars: span, segments, rows sampled of counted, rate, 95% interval, and the bar before. ↑ / ↓ there: the next bar
mNext measure
wStage a coarser window in Setup, for segments the sample reached thinly or not at all
gThe expected windows with no rows: empty by exact count, not sampled, or out of scope
EscBack to Trends

Analysis: Data Quality · Intervals

KeyAction
EnterAn interval’s detail: its ends, the rows with both, missing and unread ends, negative and zero durations, percentiles and breaches. Enter there shows the rows behind the count under the cursor: a sample’s from the rows the run kept
EscBack to the list

Export

e at the table.

Export · Form

KeyAction
Tab / Shift+Tab (↑ / ↓)Next or previous field, wrapping; the fields follow the format. The dialog opens on Path, and the arrows move from there
← / →On Format or Compression: the previous or next value, along the Format row (h/l too). On Header or Source file: toggle. In Path and Delimiter: move the cursor
SpaceToggle a checkbox (Header, Source file); on Format or Compression, the next value, wrapping
Ctrl+P / Ctrl+NIn the path field: the paths exported to before, earlier or later (↑ and ↓ move between fields)
EnterExport, from anywhere in the form. On a blank path the form says “Enter a file path.” instead of exporting
EscClose without exporting

Export · File exists

KeyAction
← / → (h/l)Pick Overwrite or No (Tab too)
EnterConfirm the one picked
EscDecline: back to the filled form

Copy

y at the table.

Copy · Form

KeyAction
Tab / Shift+Tab (↑ / ↓)Next or previous row
← / →The previous or next scope, column or format (h/l too); on Header: toggle
SpaceOn Scope or Format: the next value, wrapping. On Column: open its picker. On Header: toggle
EnterCopy, from anywhere in the form. On the Cell scope with no column picked, Enter re-accents the spec line instead of copying
EscClose a picker, then the dialog, without copying

Copy · Picker

KeyAction
(type)Narrow the list
↑ / ↓Move the cursor (j/k narrow the picker; only ↑/↓ move there)
Enter / SpaceChoose
Tab / Shift+TabChoose and move on

Views

v at the table.

Views · List

KeyAction
↑ / ↓ (j/k)Move in the list
EnterApply the selected view
sSave the current state as a view (an untouched table has nothing to save, and s says so)
eEdit the selected view
dDelete the selected view, after confirming
iShow how the selected view’s score was computed (Esc closes the score view)
EscClose

Views · Save and edit

KeyAction
Tab / Shift+Tab (↑ / ↓)Next or previous row. In the description ↑ / ↓ move between its lines, and leave it from the first or last
EnterSave, from any row. In the description Enter types: Ctrl+J saves from there
Ctrl+JSave from anywhere, the description included; so does Ctrl+Enter, on a terminal that tells it from Enter
PgUp / PgDnFive lines in the description
SpaceExpand or collapse Matching; toggle schema match
EscBack to the list, discarding edits

Views · Delete

KeyAction
← / → (h/l)Pick Delete or No (Tab too); it starts on No
EnterConfirm the one picked
EscKeep the view

Format picker

b at a table read through a format spec.

Format picker · Pick

KeyAction
(type)Narrow to the names that contain it
↑ / ↓Move
EnterRead the file again with the spec chosen. The query, filters and sort are cleared
BackspaceDelete a character (Ctrl+W a word, Ctrl+U all)
EscClose and keep the format

Column type

Enter on the Info panel’s Schema tab, or Change type in the cell menu.

Column type · Pick

KeyAction
(type)Narrow the list to the names that contain it. In the format list, a strftime format typed that no line holds is the format
↑ / ↓Move
EnterThe type: the column reads as it at once, a value that does not fit null. A date, time or datetime asks its format next, each line showing what it makes of the column’s first value. as read takes the type away
BackspaceDelete a character (Ctrl+W a word, Ctrl+U all)
EscBack to the types, or close

Combine into datetime

Combine into datetime in the cell menu, on a text, date or time column.

Combine into datetime · Fields

KeyAction
Tab / Shift+Tab (↑ / ↓)Next or previous field
SpacePick a column, or step the kind
← / →Step the kind: datetime, date or time
EnterMake the column, before the first column it is made from, as a format spec’s derived column is: a date and a time, and a UTC offset, make a datetime in UTC
EscCancel

Table picker

T at a table of a file of several.

Table picker · Pick

KeyAction
(type)Narrow to the names that contain it
↑ / ↓Move
EnterOpen the table chosen in place of this one. The query, filters and sort are cleared
BackspaceDelete a character (Ctrl+W a word, Ctrl+U all)
EscClose and keep the table

Sample

S at the table.

Sample · Form

KeyAction
Tab / Shift+Tab (↑ / ↓)Next or previous row
← / →Step Rows from, Method and Per value of; Method’s No sample takes the view’s sample away
(type)Type into the focused row: the size (50000, 50k, 2m), the seed, a row range, partition values or file numbers
EnterDraw the sample: the table shows its rows as they arrive, and the query, filters and sort run over them. When the estimate is more than the memory available now (or analysis.sample_memory_limit), the form says so; Enter again draws anyway
EscClose; the view’s sample stays as it was

Hex view

datui --hex FILE, Ctrl+X on the home screen, or x in the Info panel.

Hex view · Explore

KeyAction
← / → (h/l)A byte
↑ / ↓ (j/k)A row
w / bThe next group of four, or back one
0 / $The start or end of the row
g / GThe start or end of the file (Home and End too)
PgUp / PgDnA page (Ctrl+B/F too; Ctrl+U/D half a page)
:Go to an offset: 4096 or 0x1000; +16 or -16 from the cursor; e-8 for the eighth byte from the end

Hex view · Find

KeyAction
fFind bytes. Text is found as its UTF-8 bytes (Ctrl+U in the prompt: as UTF-16 little-endian). 0x1acffc1d, or two or more hex pairs (de ad be ef), is a byte pattern, where ?? matches any byte. Text in double quotes is text, even when it looks like hex. A match may span rows
n / NThe next or previous match, round the end of the file
RWhen the matches after the one found are all the same distance apart, make that the bytes per row
EscStop a find that is reading

Hex view · Display

KeyAction
rBytes per row, so that records line up; empty goes back to as many as fit. –hex-width N sets it on the command line
#Offsets in decimal or hex
i / EnterShow or hide the byte inspector. Beside the bytes when there is room for it and 16 bytes a row, over them when there is not
vMark from the cursor; move to mark a range, and the status line counts it. v again, or Esc, unmarks

Hex view · Go

KeyAction
BRead the file with a format spec instead
EscBack to the table, when opened from the Info panel; back home, when opened from there
qHome, when opened from there; else quit

Text fields

Every text field, from the command line to a file path, edits the same way, with two simpler exceptions: a picker’s type-to-narrow filter takes characters and Backspace, plus Ctrl+W to drop a word and Ctrl+U to clear; and the home screen’s ~ path prompt takes characters, Backspace, Ctrl+U, Tab to complete, ↑ ↓ to pick from the list, Enter and Esc.

A default a form fills in, such as a new view’s name, melt’s variable and value, or a sample’s seed, is selected while the field has focus: typing or pasting replaces it, Backspace, Delete or a deletion key in the table below clears it, and a cursor key, Enter or Tab keeps it. Editing a saved view opens its values unselected.

KeyAction
← → Home EndMove the cursor
Ctrl+← Ctrl+→ or Alt+B Alt+FMove a word
Ctrl+A Ctrl+EStart and end of line
Ctrl+W Alt+DDelete the word before or after the cursor
Ctrl+U Ctrl+KDelete to the start or the end of the line
Ctrl+YPaste the last deletion
Ctrl+Z Ctrl+RUndo, redo
Ctrl+JThe same as Ctrl+Enter, on every terminal: saves a view from its description and applies Sort & Filter. In the command line and the find prompt it submits, like Enter
Ctrl+CCopy the selection (does not quit while a text field is focused)
F1Help

Help overlay

KeyAction
↑ ↓ or j kScroll
PgUp PgDnA page
Home EndTop and bottom
Esc or ?Close

Keys while busy

A spinner in the footer means datui is busy. While it is, at the plain table q, Q, ← → (h l, Shift for a page), { }, #, ,, D, the width keys, ? and F1 act at once, as do ↑ ↓ (j k) inside the rows already read while all that is awaited is more rows; and Ctrl+Q, Ctrl+C and Ctrl+O act from anywhere. Other keys are queued and replayed in order once the work is done — except a bare Esc, or an Enter that would drill, which is dropped; an Enter that would inspect the row waits as Space. At most 32 keys are held, and held keys die with the screen they were typed at. At the loading screen nothing is held: the allowed keys act, the rest are dropped. While a view is being applied, Esc stops it and keeps the table as it was.

Mouse

The mouse is a shortcut to the keys: it never does what no key does.

ActionEffect
Wheel↑ ↓ three rows a notch, in whatever has the keys: the table, help, the inspector, a sidebar. On the home screen it moves the selection and stops at the first and last row
Shift+wheel, or a sideways wheel← →: the column cursor, at the table only
Click a cellPuts the cursor on its row and column; on a header, its column
Click a home rowSelects it
Click a chart’s plotXY: the crosshair on the point nearest, as x and ← → would
Double-clickEnter on the row: inspect or drill at the table, open on the home screen
Click a key in the footerPresses it

In a text field the wheel does nothing, so it cannot recall history.

Mouse input is never queued. While datui is busy, the sideways wheel and the footer’s keys act as their keys would; the wheel down and a click on the table are dropped, as is a click behind keys already queued.

To select text with the mouse while datui has it, see Mouse and text selection.