Skip to main content

Keyboard Map

Condensed reference for all VisiData keys, organized by function. Use this as a printable quick-reference card.

Learning Focus

Print or bookmark this page. Refer to it during the first two weeks — after that, the most-used keys become automatic. Focus on: navigation (hjkl-style), selection (|, z|), and analysis (Shift+F, Shift+W).


KeyAction
h / lMove left / right one column
j / kMove down / up one row
gH / gLMove to first / last column
gG / ggMove to last / first row
Ctrl+F / Ctrl+BPage down / Page up
Ctrl+D / Ctrl+UHalf page down / Half page up
/ regexSearch forward in current column
? regexSearch backward in current column
n / NNext / previous search match
g/ regexSearch all visible columns
{ / }Jump to previous / next selected row
Ctrl+^Toggle between current and previous sheet

Session Management

KeyAction
qQuit current sheet (return to previous)
QQuit and remove from CommandLog
gqQuit all sheets (exit VisiData)
^QAbort immediately (no save)
Shift+SOpen Sheet List
^GShow current position + sheet info
^VShow VisiData version
^LRedraw screen
^RReload sheet from source
SpaceCommand palette (searchable)
z^HHelp for current sheet type

Row Selection

KeyAction
s / uSelect / unselect current row
tToggle selection of current row
gs / guSelect / unselect all rows
gtToggle all rows
| regexSelect rows matching regex in current column
g| regexSelect rows matching regex in any visible column
z| exprSelect rows matching Python expression
,Select rows matching current cell value
"Open filtered sheet (selected rows only)
g"Open unfiltered copy of all rows

Column Operations

KeyAction
^Rename current column
_Toggle column width (full / default)
g_Toggle all column widths
z_ NSet column width to N characters
-Hide current column
gvUnhide all hidden columns
H / LSlide column left / right
gH / gLSlide column to far left / far right
!Toggle current column as key column / pinned identifier
z!Unset current column as key column

Column Types

KeyType
~str (text)
#int (integer)
%float (decimal)
$currency
@date
z#len (string length as int)

Derived Columns and Editing

KeyAction
= exprCreate derived column from expression
g= exprBulk set current column for selected rows
: regexSplit column into sub-columns by regex
; regexExtract capture groups as new columns
* s<Tab>rCreate column replacing regex s→r (new column)
g* s<Tab>rReplace regex in-place for selected rows
iAdd incremental integer column
giSet current column incrementally for selected rows
Space rn EnterAdd leftmost no row-number column (common-config)
+ aggSet aggregator on current column
z+ aggShow aggregate result in status bar

Cell Editing

KeyAction
eEnter edit mode on current cell
ge textSet current column for all selected rows to text
^OOpen current cell in external $EDITOR
UUndo last modification
RRedo last undo
fFill null cells with non-null value above
Ctrl+SSave current sheet
g Ctrl+SSave all sheets

Row Operations

KeyAction
aAppend blank row after current
ga NAppend N blank rows
dDelete current row
gdDelete all selected rows
y / gyYank current / all selected rows to clipboard
p / PPaste clipboard rows after / before current
x / gxCut current / selected rows
J / KSlide row down / up
gJ / gKSlide row to bottom / top

Sorting

KeyAction
[ / ]Sort ascending / descending by current column
g[ / g]Sort by all key columns ascending / descending
z[ / z]Add to existing sort (cumulative)

Analysis

KeyAction
Shift+FFrequency table on current column
gFFrequency table on all key columns
Shift+WPivot table (requires key column set with !)
Shift+IDescribe Sheet (statistical profile of all columns)
Shift+CColumns Sheet (bulk column metadata editing)
Shift+MMelt (unpivot) sheet
.Canvas / graph (requires key column)
TTranspose sheet (swap rows and columns)
&Join / append top two selected sheets
g&Join / append all sheets in Sheet List

Nested / JSON Columns

KeyAction
(Expand current nested column one level
g(Expand all nested columns one level
z( NExpand current column to depth N
)Collapse current expanded column
g)Collapse all expanded columns
zMExpand list column into multiple rows
EnterDrill into nested cell / frequency row as child sheet

CommandLog and Macros

KeyAction
Shift+DOpen CommandLog for current sheet
gDOpen global CommandLog
m keyStart / stop recording macro to key
gmOpen Macro Index

Sheet Types (Quick Access)

KeySheet Type
Shift+FFrequency Sheet
Shift+WPivot Sheet
Shift+IDescribe Sheet
Shift+CColumns Sheet
Shift+DCommandLog Sheet
Shift+OOptions Sheet
Shift+MMelted Sheet
Shift+SSheet List
^TThreads Sheet

Clipboard (System)

KeyAction
YYank current row to system clipboard
gYYank selected rows to system clipboard
zYYank current cell value to system clipboard

Printable Summary (ASCII)

NAVIGATE SELECT EDIT
───────────────────── ────────────────────── ─────────────────────────
h/l col left/right | regex → select col e edit cell
j/k row up/down g| regex → select all ge bulk set col
gg/gG first/last row z| expr → by expr = derived column
g/ search all , → match cell value g= bulk set expr
n/N next/prev match " → open filtered * regex replace (new)
s/u → single select g* regex replace (inplace)
gs/gu → all select i incremental column
SORT & TYPE ────────────────────── d/gd delete row/selected
───────────────────── ANALYSIS a add blank row
[ / ] asc/desc sort ────────────────────── y/p yank / paste
g[ g] by key cols Shift+F frequency U undo
~#%$@ type cast Shift+W pivot Ctrl+S save
! key/pin col Shift+I describe
z! unkey column Shift+C columns sheet SESSION
H/L slide col Shift+M melt ─────────────────────────
(/) expand/collapse T transpose q/Q/gq quit
g( expand all & join sheets ^Q abort

What's Next