Keyboard shortcuts
Every default keyboard shortcut. All of them are rebindable via Edit → Configure Hotkeys.
All shortcuts below are defaults — rebind any of them via Edit → Configure Hotkeys…. The Command Palette (Ctrl+K) shows the current binding next to every command, and Help → Keyboard Shortcuts shows this same reference in-app — live, so it reflects your rebinds. On macOS, read Ctrl as Cmd.
Application
| Shortcut | Action |
|---|---|
| Ctrl+N | New document |
| Ctrl+O | Open… |
| Ctrl+Shift+O | Open Recent… |
| Ctrl+S | Save |
| Ctrl+Shift+S | Save As… |
| Ctrl+E | Export… |
| Ctrl+P | Print / Save as PDF… |
| Ctrl+K | Command Palette |
| Ctrl+Shift+D | Show / hide the Directory panel |
| Ctrl+Shift+A | AI Assistant |
| F5 | Present mode — full-screen read-only view (F5 or Esc exits) |
| Alt+T / Alt+I | Insert a table / tile |
| Alt+D | Insert a table from a database (opens Database Connections if none is set up yet) |
| Alt+F1 | Insert a chart (Excel's "chart it" key) |
| Ctrl+Shift+E | Table View: Auto Expand — the selected table's display mode |
| Ctrl+Shift+F | Table View: Full Table — likewise |
| Alt+Shift+F | Size to Fit — the selected column(s), tile, or table card, sized to its content |
| Alt+Shift+T | Size to Fit: Table Only — the card (shrinks to the populated rows), leaving the column widths alone |
| Alt+Shift+C | Size to Fit: Columns Only — the selected columns, else every column of the selected table |
| Alt+Shift+W / Alt+Shift+H | Size to Fit a tile's width / height alone |
| Ctrl+= | Zoom the canvas in |
| Ctrl+- | Zoom the canvas out |
| Ctrl+0 | Canvas zoom back to 100% |
| Ctrl+9 | Zoom to fit — frame everything on the tab |
| Ctrl+wheel | Zoom the canvas around the pointer |
| Ctrl+PageUp | Previous tab |
| Ctrl+PageDown | Next tab |
| F1 | Keyboard Shortcuts — this reference, in-app |
| Shift+F1 | Open the documentation |
Editing
| Shortcut | Action |
|---|---|
| Ctrl+Z | Undo |
| Ctrl+Y or Ctrl+Shift+Z | Redo |
| Ctrl+C / Ctrl+X / Ctrl+V | Copy / cut / paste (see below) |
| Ctrl+F | Find — jump through the cells on this tab that match what you type |
| Ctrl+H | Find and replace |
| Ctrl+A | Grow the cell selection to the whole table |
| Ctrl+D | Fill down — copy the top row of the selection down through it |
| Ctrl+R | Fill right — copy the left column of the selection across it |
| Ctrl+Shift+H | View change history |
| Ctrl+Shift+L | Filter the selected column |
| Alt+Shift+↑ / Alt+Shift+↓ | Sort the selected column A→Z / Z→A |
| Ctrl+B / Ctrl+I / Ctrl+U | Bold / italic / underline the selected cells or columns (per-character in the tile text editor) |
| Delete / Backspace | Clear cell contents, or delete selected columns |
| Ctrl+Delete or Ctrl+Backspace | Delete the selected card(s) — tables, charts, and tiles confirm first; shapes and scripts delete immediately (undoable) |
Find (Ctrl+F) opens a small bar over the canvas. It matches what the cells actually show — a formatted date or a thousands-separated number is findable as it reads on screen — and it searches tiles as well as table cells. Enter walks to the next match, Shift+Enter to the previous, and each jump selects that cell (switching tab if the match is on another one, and scrolling its card and its rows into view) so you can edit it straight away. Esc closes the bar. Rows hidden by a column filter are skipped, and a very large table is searched over the rows currently loaded.
Three toggles and a scope sit on the bottom row of the bar:
| Control | What it does |
|---|---|
| Aa | Match case |
| Cell | Match the entire cell, not part of it |
| .\* | Read the search text as a regular expression ($1 back-references work in the replacement; an invalid pattern reads "bad pattern") |
| Scope | This tab (default), Whole document — every tab — or Selected table, the table your selection is in |
Very large tables. DreamSheets keeps the first 10,000 rows of each table in the editor and the rest in the backend, so an ordinary search reads "no matches (loaded rows)" when it can't see past that. If the document has such a table, a Search through large tables checkbox appears at the bottom of the bar (desktop only — the browser editor doesn't hold the extra rows to scan). Tick it and the search runs in the backend over every row — on demand, via the Search button (or Enter), never as you type, because a full scan is real work. In that mode regular expressions are unavailable and matching is against the stored value rather than the formatted one: those restrictions are what keep the scan a single fast pass. Landing on a match past row 10,000 loads a window around it, so the row is really shown and can be edited or replaced like any other.
Ctrl+H adds a replace field to the same bar. Replace rewrites the current match and moves on; All rewrites every match in scope as a single step, so one Ctrl+Z takes it all back — and Ctrl+Z works from inside the bar once you've replaced something. Replace writes stored values, so it is narrower than find on purpose: calculated and linked columns, cells or tiles carrying a formula, and anything that only matched on its formatted text (searching 1,200 when the cell holds 1200) are skipped and counted rather than rewritten from what the screen said. A number tile stays a number when the result still reads as one.
The fill commands also live on the mouse: drag the fill handle — the small square at the selection's bottom-right corner — down or right to fill, exactly like Excel. It previews the extension as you drag, runs the same values-only fill as Ctrl+D / Ctrl+R (one op, one undo), and Esc mid-drag cancels.
Copy and paste are context-sensitive: a cell range copies as TSV (pasteable into Excel and back); a whole-column selection copies all its rows; a selected card or group copies to an internal clipboard so paste duplicates it (or moves it, after a cut). Pasting with nothing internal falls back to the OS clipboard — an image becomes a media object, and tabular text becomes cells or a new table.
Cut is deferred, like Excel's. Ctrl+X copies the values and outlines the source; the source clears only when you paste, so the whole move is a single undo, and Esc (or any other edit) cancels the cut with nothing lost.
Whole rows and columns move. Select rows from the number gutter — or columns from their headers — then Ctrl+X, right-click the row/column you want them in front of, and choose Insert cut rows / columns. The real rows and columns relocate, keeping their per-cell formulas, formatting and column types, and everything else shifts to make room. After a Ctrl+C the same entry reads Insert copied rows / columns and inserts a duplicate instead. Cut, copy and paste are also on the right-click menu of every cell, row number and column header.
Moving around a table
Active when a cell is selected:
| Shortcut | Action |
|---|---|
| Arrow keys | Move the selection |
| Shift+Arrow | Extend the selection |
| Ctrl+Arrow | Jump to the edge of the data |
| Tab / Shift+Tab | Step right / left |
| Home / End | First / last column of the row |
| Ctrl+Home / Ctrl+End | First cell / last cell of the table |
| PageUp / PageDown | Move by a screenful of rows |
| Enter, F2, or just typing | Start editing the cell (typing replaces; F2 edits in place) |
| Ctrl+Enter | While editing a formula, apply it and close the editor |
| Escape | Clear the selection |
Two edge behaviors worth knowing: pressing a plain arrow key at the table's boundary grows the table in that direction, and Up from the first row moves into the column header.
After a run of Tab presses, Enter returns to the column you started in, one row down — Excel's data-entry rhythm.
While a formula editor is open, Ctrl+click a cell to insert a reference to it at the caret — Excel-style formula building. A cell inserts @Column (same table) or Table.Column (across tables), with a :N row suffix when you click a specific cell; a column header inserts the whole column, a table header inserts Table., and a tile inserts its name. Focus stays in the editor, so consecutive Ctrl+clicks keep appending references.
Column headers
Active when a whole column is selected:
| Shortcut | Action |
|---|---|
| Left / Right | Move between columns |
| Shift+Left / Right | Extend the column selection |
| Down or Enter | Drop into the column's first data cell |
| F2 or typing | Rename the column inline (typing starts fresh with what you typed) |
| Escape | Clear the selection |
Canvas
Active when no cell is selected:
| Shortcut | Action |
|---|---|
| Tab / Shift+Tab | Cycle through the cards on this tab |
| Enter | Enter the selected table's first data cell, or edit the selected tile |
| F2 | Rename the selected card. On a tile, F2 edits its value instead |
| Shift+F2 | Rename the selected card's title, tiles included |
| Arrow keys | Nudge the selected card by one grid step (20px) |
| Alt+Arrow keys | Select the nearest card in that direction |
| Escape | Deselect; close panels, popups, and menus |
Rebinding
Edit → Configure Hotkeys… lists every command with its binding. A chord must include Ctrl or Alt, or be an F-key. Assigning a chord already in use moves it to the new command (and says so). "Reset to defaults" restores everything. Bindings are per-machine.