Keymaps Reference

Press ? from any surface to open the help popup inline. This page is the full reference.

Grid

The grid buffer is non-editable (modifiable=false, ft=grip). All single-key mappings are safe here since there is no insert mode.

KeyAction
j / kMove down/up rows
h / lMove left/right within row
w / bNext / previous column
Tab / S-TabNext / previous column
eNext column, land at end of cell
ggFirst data row (same column)
GLast data row
0 / ^First column
$Last column
{ / }Previous / next modified row

Editing

KeyAction
i / <CR>Edit cell under cursor
xSet cell to NULL
pPaste clipboard into cell
PPaste multi-line into consecutive rows
oInsert new row after cursor
cClone row (copy values, clear PKs)
dToggle delete on current row
uUndo last edit (multi-level)
<C-r>Redo
UUndo all (reset to original)
aApply all staged changes to DB

Batch Edit (visual mode)

KeyAction
eSet selected cells to same value
dToggle delete on selected rows
xSet selected cells to NULL
yYank selected cells in column

Display

KeyAction
-Hide column under cursor
g-Restore all hidden columns
gHColumn visibility picker
=Cycle column width (compact to expanded to reset)
TToggle column type annotations
KRow view (vertical transpose)
?Show help popup
QWelcome screen (home)

Sort / Filter / Pagination

KeyAction
sToggle sort on column (ASC, DESC, off)
SAdd secondary sort (stacked indicators)
fQuick filter by cell value
gnFilter: column IS NULL
gFFilter builder (=, !=, >, <, >=, <=, LIKE, IN, BETWEEN, NULL, NOT NULL)
<C-f>Freeform WHERE clause filter
FClear all active filters
gpLoad saved filter preset
gPSave current filter as preset
XReset view (clear sort, filter, and page)
H / LPrevious / next page
[p / ]pPrevious / next page (bracket alias)
[P / ]PFirst / last page

FK Navigation

KeyAction
gfFollow foreign key under cursor
<C-o>Go back in FK navigation stack

Inspection

KeyAction
geExplain cell (type, value, status)
gsPreview staged SQL
gcCopy staged SQL to clipboard
giTable info (columns, types, PKs)
gITable properties (full detail float)
gNRename column under cursor
glToggle live SQL preview float

Analysis and Export

KeyAction
gaAggregate current column (count, sum, avg, min, max)
gSColumn statistics popup (distinct, nulls%, top values)
gRTable profile (sparkline distributions)
gVShow CREATE TABLE DDL float
gxExplain current query plan
gDDiff against another table
gEExport to clipboard (CSV, TSV, JSON, SQL, Markdown, Grip Table)
gXExport to file (csv, json, or sql)
yYank cell value to clipboard
YYank row as CSV
gYYank entire table as CSV
gyYank table as Markdown pipe table

Surface Navigation (1-9)

Surface jumps use a “press again for secondary” pattern:

KeyPrimarySecondary (already on that surface)
1Open sidebarConnections picker
2Open query padQuery history
3Grid / recordsTable picker

Table-depth views work consistently across grid, sidebar, and query pad:

KeyView
4ER diagram float
5Column Stats
6Columns (schema)
7Foreign Keys
8Indexes
9Constraints

Schema and Workflow

KeyAction
goOpen schema browser sidebar (focus / toggle)
gT / gtPick table (floating picker)
gbSchema browser sidebar (toggle/focus)
gOOpen as editable table (read-only to table)
gGER diagram float
gC / <C-g>Switch database connection
gWToggle watch mode (auto-refresh on timer)
g!Toggle write mode (apply overwrites file)
qOpen query pad
gqLoad saved query
ghQuery history browser
rRefresh (re-run query)
AAI SQL generation

Query Pad

The query pad is an editable SQL buffer (ft=sql).

KeyAction
<C-CR>Execute query
<C-CR> (visual)Execute selected SQL only
<C-Space>Manually trigger SQL completion
<C-x><C-o>SQL completion (omnifunc / nvim-cmp source)
<C-s>Save current query
gAAI SQL generation
gC / <C-g>Switch database connection
gbToggle schema browser sidebar
gGER diagram float
gwFocus main grid (or welcome screen)
go / gT / gtPick table (floating picker)
gqLoad saved query into pad
ghQuery history
QWelcome screen
?Show help
qClose query pad
1Open sidebar
2Query history (secondary: already in query pad)
3Jump to grid
4 - 9Jump to grid in that view

SQL completion fires automatically as you type: tables, columns, aliases, and attached federation schemas all appear as candidates.

Schema Sidebar

KeyAction
<CR> / goOpen table under cursor
gT / gtPick table (picker)
gbClose sidebar
gqLoad saved query into query pad
ghQuery history
gC / gc / <C-g>Switch connection
gaAttach external DB (DuckDB federation)
gdDetach attached database
gGER diagram float
?Show help
1Connections picker
2Open query pad
3Jump to grid / open table as records
4ER diagram float
5-9Open table under cursor in that view

Design Principles

Surfaceq<Esc>?gC
GridOpen query pad(nothing)HelpConnections
SidebarOpen query padCloseHelpConnections
Query padWelcome screen(nothing)HelpConnections
Modal floatsCloseClose(nothing)(nothing)

Uppercase g keymaps handle global/navigation actions. Lowercase g keymaps handle local inspection and analysis. ? opens help everywhere.