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
| Key | Action |
|---|---|
q | Close current sheet (go back) |
Q | Close current sheet and remove from CommandLog |
gq | Close all sheets and quit |
Shift+S | Open the Sheets Sheet |
Ctrl+^ | Jump to previous sheet (swap) |
Alt+1 … Alt+9 | Jump 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
| Problem | Cause | Fix |
|---|---|---|
| Cannot find original sheet | Deep stack of derived sheets | Shift+S → click source sheet |
q exits VisiData | Only one sheet in stack | Expected behavior — use gq intentionally |
| Split screen shows wrong sheet | Stack order | Use gTab to swap pane contents |
Alt+N does nothing | Sheet count < N | Only 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