Skip to main content

Switching Between Sheets

Every VisiData action that creates a derived view (frequency table, pivot table, describe sheet) pushes a new sheet onto the stack. Understanding how to navigate this stack is essential for a fluid workflow.

Learning Focus

Learn the Sheets Sheet (Shift+S), the direct sheet number jump (Alt+N), and split-screen mode (Z) as three complementary navigation strategies.

The Sheet Stack

Core Navigation Keys

KeyAction
qClose current sheet (go back)
QClose current sheet and remove from CommandLog
gqClose all sheets and quit
Shift+SOpen the Sheets Sheet
Ctrl+^Jump to previous sheet (swap)
Alt+1Alt+9Jump to sheet by number

The Sheets Sheet (Shift+S)

The Sheets Sheet is the navigation hub — it lists every open sheet with its type and row count.

name source nRows type
servers.csv /tmp/servers.csv 4 Sheet
Frequency by role servers.csv 3 FreqTable
Describe servers.csv servers.csv 4 DescribeSheet

Inside the Sheets Sheet:

Enter jump to the sheet under cursor
gEnter push selected sheets to top of stack
g^R reload all selected sheets
& merge/join selected sheets (prompts for jointype)
g^S save selected sheets to files

Direct Sheet Number Jump

Alt+1 jump to sheet 1
Alt+2 jump to sheet 2
# etc. (only works for first 9 sheets)

Split Screen Navigation

Split screen lets you view two sheets simultaneously — ideal for comparing source data with a derived view.

Z split screen — second sheet from stack appears below
zZ split screen with custom height (queries)
Tab move focus to other pane
gTab swap the two panes
gZ close split; restore single pane

Example workflow:

# Open CSV
vd servers.csv

# Open frequency table (pushed onto stack)
Shift+F

# Split screen to see both
Z

# Tab to switch between panes and interact with each
Tab

Opening a Sheet in a New Pane

# While on the Sheets Sheet:
gEnter push selected sheets to the other pane

Derived Sheet Chains

Derived sheets can themselves spawn further derived sheets:

servers.csv
└── Frequency Table (Shift+F)
└── Source rows for "webserver" (Enter on a row)
└── Filtered copy of servers.csv

Press q at each level to unwind the chain.

Practical Use Cases

Compare Raw Data and Frequency Table

vd /var/log/nginx/access.log

# Create frequency table on status column
Shift+F

# Split screen to view both simultaneously
Z

# Tab to switch focus and interact with each
Tab

Manage Multiple Open Files

vd servers.csv /var/log/nginx/access.log

# Shift+S → see both files as sheets
# Alt+1 → jump to servers.csv
# Alt+2 → jump to access.log
# Ctrl+^ → toggle between the two quickly

Track Your Sheet Stack Depth

# Open Sheets Sheet at any time to see where you are
Shift+S
# Status bar shows sheet count
# Each row is one sheet in the stack

Troubleshooting Matrix

ProblemCauseFix
Cannot find original sheetDeep stack of derived sheetsShift+S → click source sheet
q exits VisiDataOnly one sheet in stackExpected behavior — use gq intentionally
Split screen shows wrong sheetStack orderUse gTab to swap pane contents
Alt+N does nothingSheet count < NOnly works for sheets that exist

Hands-On Practice

vd /tmp/servers.csv

# 1. Shift+F → open frequency table on 'role' column
# 2. Shift+S → view both sheets in the Sheets Sheet
# 3. q → back to source
# 4. Shift+I → open Describe Sheet
# 5. Z → split screen
# 6. Tab → switch panes
# 7. gZ → close split
# 8. gq → exit VisiData

What's Next