1vd(1) Quick Reference Guide vd(1)
2
4 VisiData — a terminal utility for exploring and arranging tabular data
5
7 vd [options] [input ...]
8 vd [options] --play cmdlog [-w waitsecs] [--batch] [-o output]
9 [field=value]
10 vd [options] [input ...] +toplevel:subsheet:col:row
11
13 VisiData is an easy-to-use multipurpose tool to explore, clean, edit, and
14 restructure data. Rows can be selected, filtered, and grouped; columns
15 can be rearranged, transformed, and derived via regex or Python expres‐
16 sions; and workflows can be saved, documented, and replayed.
17
18 REPLAY MODE
19 -p, --play=cmdlog replay a saved cmdlog within the interface
20 -w, --replay-wait=seconds
21 wait seconds between commands
22 -b, --batch replay in batch mode (with no interface)
23 -o, --output=file save final visible sheet to file as .tsv
24 --replay-movement toggle --play to move cursor cell-by-cell
25 field=value replace "{field}" in cmdlog contents with value
26
27 Commands During Replay
28 ^U pause/resume replay
29 ^N execute next row in replaying sheet
30 ^K cancel current replay
31
32 GLOBAL COMMANDS
33 All keystrokes are case sensitive. The ^ prefix is shorthand for Ctrl.
34
35 Keystrokes to start off with
36 ^Q abort program immediately
37 ^C cancel user input or abort all async threads on current
38 sheet
39 g^C abort all secondary threads
40 q quit current sheet or menu
41 Q quit current sheet and free associated memory
42 gq quit all sheets (clean exit)
43
44 ^H activate help menu (Enter/left-mouse to expand submenu
45 or execute command)
46 g^H view this man page
47 z^H view sheet of command longnames and keybindings for cur‐
48 rent sheet
49 Space longname execute command by its longname
50
51 U undo the most recent modification (requires enabled
52 options.undo)
53 R redo the most recent undo (requires enabled
54 options.undo)
55
56 Cursor Movement
57 Arrow PgUp go as expected
58 h j k l go left/down/up/right
59 gh gj gk gl go all the way to the left/bottom/top/right of sheet
60 G gg go all the way to the bottom/top of sheet
61 Ic. End Home go all the way to the bottom/top of sheet
62 ^B ^F scroll one page back/forward
63 ^Left ^Right scroll one page left/right
64 zz scroll current row to center of screen
65
66 ^^ (Ctrl+^) jump to previous sheet (swaps with current sheet)
67
68 / ? regex search for regex forward/backward in current column
69 g/ g? regex search for regex forward/backward over all visible
70 columns
71 z/ z? expr search by Python expr forward/backward in current column
72 (with column names as variables)
73 n N go to next/previous match from last regex search
74
75 < > go up/down current column to next value
76 z< z> go up/down current column to next null value
77 { } go up/down current column to next selected row
78
79 c regex go to next column with name matching regex
80 r regex go to next row with key matching regex
81 zc zr number go to column/row number (0-based)
82
83 H J K L slide current row/column left/down/up/right
84 gH gJ gK gL slide current row/column all the way to the left/bot‐
85 tom/top/right of sheet
86 zH zJ zK zK number
87 slide current row/column number positions to the
88 left/down/up/right
89
90 zh zj zk zl scroll one left/down/up/right
91
92 Column Manipulation
93 _ (underscore)
94 toggle width of current column between full and default
95 width
96 g_ toggle widths of all visible columns between full and
97 default width
98 z_ number adjust width of current column to number
99 gz_ number adjust widths of all visible columns to Ar number
100
101 - (hyphen) hide current column
102 z- reduce width of current column by half
103 gv unhide all columns
104
105 ! z! toggle/unset current column as a key column
106 ~ # % $ @ z#
107 set type of current column to str/int/float/cur‐
108 rency/date/len
109 ^ edit name of current column
110 g^ set names of all unnamed visible columns to contents of
111 selected rows (or current row)
112 z^ set name of current column to combined contents of cur‐
113 rent cell in selected rows (or current row)
114 gz^ set name of all visible columns to combined contents of
115 current column for selected rows (or current row)
116
117 = expr create new column from Python expr, with column names,
118 and attributes, as variables
119 g= expr set current column for selected rows to result of Python
120 expr
121 gz= expr set current column for selected rows to the items in
122 result of Python sequence expr
123 z= expr evaluate Python expression on current row and set
124 current cell with result of Python expr
125
126 i (iota) add column with incremental values
127 gi set current column for selected rows to incremental
128 values
129 zi step add column with values at increment step
130 gzi step set current column for selected rows at increment step
131
132 ' (tick) add a frozen copy of current column with all cells eval‐
133 uated
134 g' open a frozen copy of current sheet with all visible
135 columns evaluated
136 z' gz' add/reset cache for current/all visible column(s)
137
138 : regex add new columns from regex split; number of columns
139 determined by example row at cursor
140 ; regex add new columns from capture groups of regex (also
141 requires example row)
142 z; expr create new column from bash expr, with $columnNames as
143 variables
144 * regex/subst add column derived from current column, replacing regex
145 with subst (may include \1 backrefs)
146 g* gz* regex/subst
147 modify selected rows in current/all visible column(s),
148 replacing regex with subst (may include \1 backrefs)
149
150 ( g( expand current/all visible column(s) of lists (e.g. [3])
151 or dicts (e.g. {3}) one level
152 z( gz( depth expand current/all visible column(s) of lists (e.g. [3])
153 or dicts (e.g. {3}) to given depth (0= fully)
154 ) unexpand current column; restore original column and re‐
155 move other columns at this level
156 zM row-wise expand current column of lists (e.g. [3]) or
157 dicts (e.g. {3}) within that column
158
159 Row Selection
160 s t u select/toggle/unselect current row
161 gs gt gu select/toggle/unselect all rows
162 zs zt zu select/toggle/unselect all rows from top to cursor
163 gzs gzt gzu select/toggle/unselect all rows from cursor to bottom
164 | \ regex select/unselect rows matching regex in current column
165 g| g\ regex select/unselect rows matching regex in any visible
166 column
167 z| z\ expr select/unselect rows matching Python expr in any visible
168 column
169 , (comma) select rows matching display value of current cell in
170 current column
171 g, select rows matching display value of current row in all
172 visible columns
173 z, gz, select rows matching typed value of current cell/row in
174 current column/all visible columns
175
176 Row Sorting/Filtering
177 [ ] sort ascending/descending by current column; replace any
178 existing sort criteria
179 g[ g] sort ascending/descending by all key columns; replace
180 any existing sort criteria
181 z[ z] sort ascending/descending by current column; add to ex‐
182 isting sort criteria
183 gz[ gz] sort ascending/descending by all key columns; add to ex‐
184 isting sort criteria
185 " open duplicate sheet with only selected rows
186 g" open duplicate sheet with all rows
187 gz" open duplicate sheet with deepcopy of selected rows
188
189 Editing Rows and Cells
190 a za append blank row/column; appended columns cannot be
191 copied to clipboard
192 ga gza number append number blank rows/columns
193 d gd delete current/selected row(s)
194 y gy yank (copy) current/all selected row(s) to clipboard in
195 Memory Sheet
196 x gx cut (copy and delete) current/all selected row(s) to
197 clipboard in Memory Sheet
198 zy gzy yank (copy) contents of current column for
199 current/selected row(s) to clipboard in Memory Sheet
200 zd gzd set contents of current column for current/selected
201 row(s) to options.null_value
202 zx gzx cut (copy and delete) contents of current column for
203 current/selected row(s) to clipboard in Memory Sheet
204 p P paste clipboard rows after/before current row
205 zp gzp set cells of current column for current/selected row(s)
206 to last clipboard value
207 zP gzP paste to cells of current column for current/selected
208 row(s) using the system clipboard
209 Y gY yank (copy) current/all selected row(s) to system
210 clipboard (using options.clipboard_copy_cmd)
211 zY gzY yank (copy) contents of current column for
212 current/selected row(s) to system clipboard (using
213 options.clipboard_copy_cmd)
214 f fill null cells in current column with contents of non-
215 null cells up the current column
216 e text edit contents of current cell
217 ge text set contents of current column for selected rows to text
218
219 Commands While Editing Input
220 Enter ^C accept/abort input
221 ^O open external $EDITOR to edit contents
222 ^R reload initial value
223 ^A ^E go to beginning/end of line
224 ^B ^F go back/forward one character
225 ^← ^→ (arrow) go back/forward one word
226 ^H ^D delete previous/current character
227 ^T transpose previous and current characters
228 ^U ^K clear from cursor to beginning/end of line
229 ^Y paste from cell clipboard
230 Backspace Del delete previous/current character
231 Insert toggle insert mode
232 Up Down set contents to previous/next in history
233 Tab Shift+Tab autocomplete input (when available)
234 Shift+Arrow move cursor in direction of Arrow and re-enter edit
235 mode
236
237 Data Toolkit
238 o input open input in VisiData
239 ^S g^S filename save current/all sheet(s) to filename in format
240 determined by extension (default .tsv)
241 Note: if the format does not support multisave, or the
242 filename ends in a /, a directory will be created.
243 z^S filename save current column only to filename in format
244 determined by extension (default .tsv)
245 ^D filename.vd save CommandLog to filename.vd file
246 A open new blank sheet with one column
247 T open new sheet that has rows and columns of current
248 sheet transposed
249
250 + aggregator add aggregator to current column (see Frequency Table)
251 z+ aggregator display result of aggregator over values in selected
252 rows for current column; store result in Memory Sheet
253 & concatenate top two sheets in Sheets Stack
254 g& concatenate all sheets in Sheets Stack
255
256 Data Visualization
257 . (dot) plot current numeric column vs key columns. The numeric
258 key column is used for the x-axis; categorical key column
259 values determine color.
260 g. plot a graph of all visible numeric columns vs key
261 columns.
262
263 If rows on the current sheet represent plottable coordinates (as in .shp
264 or vector .mbtiles sources), . plots the current row, and g. plots all
265 selected rows (or all rows if none selected).
266
267 Canvas-specific Commands
268 + - increase/decrease zoom level, centered on cursor
269 _ (underscore) zoom to fit full extent
270 z_ (underscore) set aspect ratio
271 x xmin xmax set xmin/xmax on graph
272 y ymin ymax set ymin/ymax on graph
273 s t u select/toggle/unselect rows on source sheet con‐
274 tained within canvas cursor
275 gs gt gu select/toggle/unselect rows on source sheet visi‐
276 ble on screen
277 d delete rows on source sheet contained within can‐
278 vas cursor
279 gd delete rows on source sheet visible on screen
280 Enter open sheet of source rows contained within canvas
281 cursor
282 gEnter open sheet of source rows visible on screen
283 1 - 9 toggle display of layers
284 ^L redraw all pixels on canvas
285 v toggle show_graph_labels option
286 mouse scrollwheel zoom in/out of canvas
287 left click-drag set canvas cursor
288 right click-drag scroll canvas
289
290 Split Screen
291 Z split screen in half, so that second sheet on the stack is
292 visible in a second pane
293 zZ split screen, and queries for height of second pane
294
295 Split Window specific Commands
296 gZ close an already split screen, current pane full
297 screens
298 Z push second sheet on current pane's stack to the
299 top of the other pane's stack
300 Tab jump to other pane
301 gTab swap panes
302 g^^ (g Ctrl+^) cycle through sheets
303
304 Other Commands
305 Q quit current sheet and remove it from the CommandLog
306 v toggle sheet-specific visibility (multi-line rows on
307 Sheet, legends/axes on Graph)
308
309 ^E g^E view traceback for most recent error(s)
310 z^E view traceback for error in current cell
311
312 ^L refresh screen
313 ^R reload current sheet
314 z^R clear cache for current column
315 ^Z suspend VisiData process
316 ^G show cursor position and bounds of current sheet on sta‐
317 tus line
318 ^V show version and copyright information on status line
319 ^P open Status History
320 m keystroke first, begin recording macro; second, prompt for
321 keystroke , and complete recording. Macro can then be
322 executed everytime provided keystroke is used. Will
323 override existing keybinding. Macros will run on current
324 row, column, sheet.
325 gm open an index of all existing macros. Can be directly
326 viewed with Enter, and then modified with ^S.
327
328 ^Y z^Y g^Y open current row/cell/sheet as Python object
329 ^X expr evaluate Python expr and opens result as Python object
330 z^X expr evaluate Python expr, in context of current row, and
331 open result as Python object
332 g^X module import Python module in the global scope
333
334 Internal Sheets List
335 . VisiDataMenu (Shift+V) browse list of core sheets
336 . Directory Sheet browse properties of files in a directory
337 . Plugins Sheet browse, install, and (de)activate plugins
338 . Memory Sheet (Alt+Shift+M) browse saved values, including
339 clipboard
340
341 Metasheets
342 . Columns Sheet (Shift+C) edit column properties
343 . Sheets Sheet (Shift+S) jump between sheets or join them together
344 . Options Sheet (Shift+O) edit configuration options
345 . Commandlog (Shift+D) modify and save commands for replay
346 . Error Sheet (Ctrl+E) view last error
347 . Status History (Ctrl+P) view history of status messages
348 . Threads Sheet (Ctrl+T) view, cancel, and profile
349 asynchronous threads
350
351 Derived Sheets
352 . Frequency Table (Shift+F) group rows by column value, with
353 aggregations of other columns
354 . Describe Sheet (Shift+I) view summary statistics for each column
355 . Pivot Table (Shift+W) group rows by key and summarize current
356 column
357 . Melted Sheet (Shift+M) unpivot non-key columns into
358 variable/value columns
359 . Transposed Sheet (Shift+T) open new sheet with rows and columns
360 transposed
361
362 INTERNAL SHEETS
363 VisiDataMenu (Shift+V)
364 (sheet-specific commands)
365 Enter load sheet in current row
366
367 Directory Sheet
368 (global commands)
369 Space open-dir-current
370 open the Directory Sheet for the current directory
371 (sheet-specific commands)
372 Enter gEnter open current/selected file(s) as new sheet(s)
373 ^O g^O open current/selected file(s) in external $EDITOR
374 ^R z^R gz^R reload information for all/current/selected file(s)
375 d gd delete current/selected file(s) from filesystem, upon
376 commit
377 y gy directory
378 copy current/selected file(s) to given directory,
379 upon commit
380 e ge name rename current/selected file(s) to name
381 z^S commit changes to file system
382
383 Plugins Sheet
384 Browse through a list of available plugins. VisiData needs to be
385 restarted before plugin activation takes effect. Installation may require
386 internet access.
387 (global commands)
388 Space open-plugins
389 open the Plugins Sheet
390 (sheet-specific commands)
391 a install and activate current plugin
392 d deactivate current plugin
393
394 Memory Sheet
395 Browse through a list of stored values, referanceable in expressions
396 through their name.
397 (global commands)
398 Alt+Shift+M open the Memory Sheet
399 Alt+M name store value in current cell in Memory Sheet under
400 name
401 (sheet-specific commands)
402 e edit either value or name, to edit reference
403
404 METASHEETS
405 Columns Sheet (Shift+C)
406 Properties of columns on the source sheet can be changed with standard
407 editing commands (e ge g= Del) on the Columns Sheet. Multiple aggregators
408 can be set by listing them (separated by spaces) in the aggregators
409 column. The 'g' commands affect the selected rows, which are the literal
410 columns on the source sheet.
411 (global commands)
412 gC open Columns Sheet with all visible columns from all
413 sheets
414 (sheet-specific commands)
415 & add column from concatenating selected source columns
416 g! gz! toggle/unset selected columns as key columns on
417 source sheet
418 g+ aggregator add Ar aggregator No to selected source columns
419 g- (hyphen) hide selected columns on source sheet
420 g~ g# g% g$ g@ gz# z%
421 set type of selected columns on source sheet to
422 str/int/float/currency/date/len/floatsi
423 Enter open a Frequency Table sheet grouped by column
424 referenced in current row
425
426 Sheets Sheet (Shift+S)
427 open Sheets Stack, which contains only the active sheets on the current
428 stack
429 (global commands)
430 gS open Sheets Sheet, which contains all sheets from
431 current session, active and inactive
432 Alt number jump to sheet number
433 (sheet-specific commands)
434 Enter jump to sheet referenced in current row
435 gEnter push selected sheets to top of sheet stack
436 a add row to reference a new blank sheet
437 gC gI open Columns Sheet/Describe Sheet with all visible
438 columns from selected sheets
439 g^R reload all selected sheets
440 z^C gz^C abort async threads for current/selected sheets(s)
441 g^S save selected or all sheets
442 & jointype merge selected sheets with visible columns from all,
443 keeping rows according to jointype:
444 . inner keep only rows which match keys on all
445 sheets
446 . outer keep all rows from first selected sheet
447 . full keep all rows from all sheets (union)
448 . diff keep only rows NOT in all sheets
449 . append keep all rows from all sheets
450 (concatenation)
451 . extend copy first selected sheet, keeping all rows
452 and sheet type, and extend with columns from other
453 sheets
454 . merge mostly keep all rows from first selected
455 sheet, except prioritise cells with non-null/non-
456 error values
457
458 Options Sheet (Shift+O)
459 (global commands)
460 Shift+O edit global options (apply to all sheets)
461 zO edit sheet options (apply to current sheet only)
462 gO open options.config as TextSheet
463 (sheet-specific commands)
464 Enter e edit option at current row
465 d remove option override for this context
466 ^S save option configuration to foo.visidatarc
467
468 CommandLog (Shift+D)
469 (global commands)
470 D open current sheet's CommandLog with all other loose
471 ends removed; includes commands from parent sheets
472 gD open global CommandLog for all commands executed in
473 the current session
474 zD open current sheet's CommandLog with the parent
475 sheets commands' removed
476 (sheet-specific commands)
477 x replay command in current row
478 gx replay contents of entire CommandLog
479 ^C abort replay
480
481 DERIVED SHEETS
482 Frequency Table (Shift+F)
483 A Frequency Table groups rows by one or more columns, and includes
484 summary columns for those with aggregators.
485 (global commands)
486 gF open Frequency Table, grouped by all key columns on
487 source sheet
488 zF open one-line summary for all rows and selected rows
489 (sheet-specific commands)
490 s t u select/toggle/unselect these entries in source sheet
491 Enter gEnter open copy of source sheet with rows that are grouped
492 in current cell / selected rows
493
494 Describe Sheet (Shift+I)
495 A Describe Sheet contains descriptive statistics for all visible columns.
496 (global commands)
497 gI open Describe Sheet for all visible columns on all
498 sheets
499 (sheet-specific commands)
500 zs zu select/unselect rows on source sheet that are being
501 described in current cell
502 ! toggle/unset current column as a key column on source
503 sheet
504 Enter open a Frequency Table sheet grouped on column
505 referenced in current row
506 zEnter open copy of source sheet with rows described in cur‐
507 rent cell
508
509 Pivot Table (Shift+W)
510 Set key column(s) and aggregators on column(s) before pressing Shift+W on
511 the column to pivot.
512 (sheet-specific commands)
513 Enter open sheet of source rows aggregated in current pivot
514 row
515 zEnter open sheet of source rows aggregated in current pivot
516 cell
517
518 Melted Sheet (Shift+M)
519 Open Melted Sheet (unpivot), with key columns retained and all non-key
520 columns reduced to Variable-Value rows.
521 (global commands)
522 gM regex open Melted Sheet (unpivot), with key columns
523 retained and regex capture groups determining how the
524 non-key columns will be reduced to Variable-Value
525 rows.
526
527 Python Object Sheet (^X ^Y g^Y z^Y)
528 (sheet-specific commands)
529 Enter dive further into Python object
530 v toggle show/hide for methods and hidden properties
531 gv zv show/hide methods and hidden properties
532
534 Add -n/--nonglobal to make subsequent CLI options sheet-specific
535 (applying only to paths specified directly on the CLI). By default, CLI
536 options apply to all sheets.
537
538 Options can also be set via the Options Sheet or a .visidatarc (see
539 FILES).
540
541 -P=longname preplay longname before replay or regular
542 launch; limited to Base Sheet bound commands
543 +toplevel:subsheet:col:row launch vd with subsheet of toplevel at
544 top-of-stack, and cursor at col and row; all
545 arguments are optional
546
547 -f, --filetype=filetype tsv set loader to use for
548 filetype instead of file extension
549 -y, --confirm-overwrite=F True overwrite existing files
550 without confirmation
551 --visidata-dir=str ~/.visidata/ directory to load and
552 store additional files
553 --mouse-interval=int 1 max time between
554 press/release for click
555 (ms)
556 --null-value=NoneType None a value to be counted as
557 null
558 --undo=bool True enable undo/redo
559 --col-cache-size=int 0 max number of cache en‐
560 tries in each cached col‐
561 umn
562 --clean-names False clean column/sheet names
563 to be valid Python iden‐
564 tifiers
565 --default-width=int 20 default column width
566 --default-height=int 4 default column height
567 --textwrap-cells=bool True wordwrap text for multi‐
568 line rows
569 --quitguard False confirm before quitting
570 modified sheet
571 --debug False exit on error and display
572 stacktrace
573 --skip=int 0 skip N rows before header
574 --header=int 1 parse first N rows as
575 column names
576 --load-lazy False load subsheets always
577 (False) or lazily (True)
578 --force-256-colors False use 256 colors even if
579 curses reports fewer
580 --note-pending=str ⌛ note to display for pend‐
581 ing cells
582 --note-format-exc=str ? cell note for an excep‐
583 tion during formatting
584 --note-getter-exc=str ! cell note for an excep‐
585 tion during computation
586 --note-type-exc=str ! cell note for an excep‐
587 tion during type conver‐
588 sion
589 --scroll-incr=int 3 amount to scroll with
590 scrollwheel
591 --name-joiner=str _ string to join sheet or
592 column names
593 --value-joiner=str string to join display
594 values
595 --wrap False wrap text to fit window
596 width on TextSheet
597 --save-filetype=str tsv specify default file type
598 to save as
599 --profile False enable profiling on
600 threads
601 --min-memory-mb=int 0 minimum memory to con‐
602 tinue loading and async
603 processing
604 --encoding=str utf-8 encoding passed to
605 codecs.open
606 --encoding-errors=str surrogateescape encoding_errors passed to
607 codecs.open
608 --input-history=str basename of file to store
609 persistent input history
610 --bulk-select-clear False clear selected rows be‐
611 fore new bulk selections
612 --some-selected-rows False if no rows selected, if
613 True, someSelectedRows
614 returns all rows; if
615 False, fails
616 --delimiter=str field delimiter to use
617 for tsv/usv filetype
618 --row-delimiter=str " row delimiter to use
619 for tsv/usv filetype
620 --tsv-safe-newline=str replacement for newline
621 character when saving to
622 tsv
623 --tsv-safe-tab=str replacement for tab char‐
624 acter when saving to tsv
625 --visibility=int 0 visibility level (0=low,
626 1=high)
627 --default-sample-size=int 100 number of rows to sample
628 for regex.split (0=all)
629 --json-indent=NoneType None indent to use when saving
630 json
631 --json-sort-keys False sort object keys when
632 saving to json
633 --default-colname=str column name to use for
634 non-dict rows
635 --filetype=str specify file type
636 --confirm-overwrite=bool True whether to prompt for
637 overwrite confirmation on
638 save
639 --safe-error=str #ERR error string to use while
640 saving
641 --clipboard-copy-cmd=str xclip -selection clipboard -filter
642 command to copy stdin to
643 system clipboard
644 --clipboard-paste-cmd=str xclip -selection clipboard -o
645 command to send contents
646 of system clipboard to
647 stdout
648 --fancy-chooser False a nicer selection inter‐
649 face for aggregators and
650 jointype
651 --describe-aggrs=str mean stdev numeric aggregators to
652 calculate on Describe
653 sheet
654 --histogram-bins=int 0 number of bins for his‐
655 togram of numeric columns
656 --numeric-binning False bin numeric columns into
657 ranges
658 --replay-wait=float 0.0 time to wait between re‐
659 played commands, in sec‐
660 onds
661 --replay-movement False insert movements during
662 replay
663 --rowkey-prefix=str キ string prefix for rowkey
664 in the cmdlog
665 --cmdlog-histfile=str file to autorecord each
666 cmdlog action to
667 --regex-flags=str I flags to pass to re.com‐
668 pile() [AILMSUX]
669 --regex-maxsplit=int 0 maxsplit to pass to
670 regex.split
671 --show-graph-labels=bool True show axes and legend on
672 graph
673 --plot-colors=str list of distinct colors
674 to use for plotting dis‐
675 tinct objects
676 --zoom-incr=float 2.0 amount to multiply cur‐
677 rent zoomlevel when zoom‐
678 ing
679 --motd-url=str source of randomized
680 startup messages
681 --dir-recurse False walk source path recur‐
682 sively on DirSheet
683 --dir-hidden False load hidden files on
684 DirSheet
685 --config=str ~/.visidatarc config file to exec in
686 Python
687 --play=str file.vd to replay
688 --batch False replay in batch mode
689 (with no interface and
690 all status sent to std‐
691 out)
692 --output=NoneType None save the final visible
693 sheet to output at the
694 end of replay
695 --preplay=str longnames to preplay be‐
696 fore replay
697 --imports=str plugins imports to preload before
698 .visidatarc (command-line
699 only)
700 --unfurl-empty False if unfurl includes rows
701 for empty containers
702 --incr-base=float 1.0 start value for column
703 increments
704 --csv-dialect=str excel dialect passed to
705 csv.reader
706 --csv-delimiter=str , delimiter passed to
707 csv.reader
708 --csv-quotechar=str " quotechar passed to
709 csv.reader
710 --csv-skipinitialspace=bool True skipinitialspace passed
711 to csv.reader
712 --csv-escapechar=NoneType None escapechar passed to
713 csv.reader
714 --csv-lineterminator=str " lineterminator passed
715 to csv.writer
716 --safety-first False sanitize input/output to
717 handle edge cases, with a
718 performance cost
719 --xlsx-meta-columns False include columns for cell
720 objects, font colors, and
721 fill colors
722 --fixed-rows=int 1000 number of rows to check
723 for fixed width columns
724 --fixed-maxcols=int 0 max number of fixed-width
725 columns to create (0 is
726 no max)
727 --postgres-schema=str public The desired schema for
728 the Postgres database
729 --http-max-next=int 0 max next.url pages to
730 follow in http response
731 --html-title=str <h2>{sheet.name}</h2>
732 table header when saving
733 to html
734 --pcap-internet=str n (y/s/n) if save_dot in‐
735 cludes all internet hosts
736 separately (y), combined
737 (s), or does not include
738 the internet (n)
739 --graphviz-edge-labels=bool True whether to include edge
740 labels on graphviz dia‐
741 grams
742 --npy-allow-pickle False numpy allow unpickling
743 objects (unsafe)
744 --pdf-tables False parse PDF for tables in‐
745 stead of pages of text
746 --plugins-url=str https://visidata.org/plugins/plugins.jsonl
747 source of plugins sheet
748
749 DISPLAY OPTIONS
750 Display options can only be set via the Options Sheet or a .visidatarc
751 (see FILES).
752
753 disp_splitwin_pct 0 height of second sheet on screen
754 disp_currency_fmt %.02f default fmtstr to format for cur‐
755 rency values
756 disp_float_fmt {:.02f} default fmtstr to format for
757 float values
758 disp_int_fmt {:.0f} default fmtstr to format for int
759 values
760 disp_date_fmt %Y-%m-%d default fmtstr to strftime for
761 date values
762 disp_note_none ⌀ visible contents of a cell whose
763 value is None
764 disp_truncator … indicator that the contents are
765 only partially visible
766 disp_oddspace · displayable character for odd
767 whitespace
768 disp_more_left < header note indicating more col‐
769 umns to the left
770 disp_more_right > header note indicating more col‐
771 umns to the right
772 disp_error_val displayed contents for computa‐
773 tion exception
774 disp_ambig_width 1 width to use for unicode chars
775 marked ambiguous
776 disp_pending string to display in pending
777 cells
778 color_note_pending bold magenta color of note in pending cells
779 color_note_type 226 yellow color of cell note for non-str
780 types in anytype columns
781 color_note_row 220 yellow color of row note on left edge
782 disp_column_sep | separator between columns
783 disp_keycol_sep ║ separator between key columns and
784 rest of columns
785 disp_rowtop_sep |
786 disp_rowmid_sep ⁝
787 disp_rowbot_sep ⁝
788 disp_rowend_sep ║
789 disp_keytop_sep ║
790 disp_keymid_sep ║
791 disp_keybot_sep ║
792 disp_endtop_sep ║
793 disp_endmid_sep ║
794 disp_endbot_sep ║
795 disp_selected_note •
796 disp_sort_asc ↑↟⇞⇡⇧⇑ characters for ascending sort
797 disp_sort_desc ↓↡⇟⇣⇩⇓ characters for descending sort
798 color_default white on black the default fg and bg colors
799 color_default_hdr bold color of the column headers
800 color_bottom_hdr underline color of the bottom header row
801 color_current_row reverse color of the cursor row
802 color_current_col bold color of the cursor column
803 color_current_hdr bold reverse color of the header for the cur‐
804 sor column
805 color_column_sep 246 blue color of column separators
806 color_key_col 81 cyan color of key columns
807 color_hidden_col 8 color of hidden columns on
808 metasheets
809 color_selected_row 215 yellow color of selected rows
810 disp_rstatus_fmt {sheet.longname} {sheet.nRows:9d} {sheet.rowtype}
811 {sheet.modifiedStatus}
812 {sheet.options.disp_selected_note}{sheet.nSelectedRows}
813 right-side status format string
814 disp_status_fmt {sheet.shortcut}› {sheet.name}|
815 status line prefix
816 disp_lstatus_max 0 maximum length of left status
817 line
818 disp_status_sep | separator between statuses
819 color_keystrokes bold 233 black on 110 cyan
820 color of input keystrokes on sta‐
821 tus line
822 color_status bold black on 110 cyan
823 status line color
824 color_error red error message color
825 color_warning yellow warning message color
826 color_top_status underline top window status bar color
827 color_active_status black on 110 cyan active window status bar color
828 color_inactive_status 8 on black inactive window status bar color
829 color_working green color of system running smoothly
830 color_edit_cell white cell color to use when editing
831 cell
832 disp_edit_fill _ edit field fill character
833 disp_unprintable · substitute character for unprint‐
834 ables
835 disp_menu True show menu on top line when not
836 active
837 disp_menu_keys True show keystrokes inline in sub‐
838 menus
839 color_menu black on 110 cyan color of menu items in general
840 color_menu_active 223 yellow on black
841 color of active menu items
842 color_menu_spec black on 34 green color of sheet-specific menu
843 items
844 color_menu_help black italic on 110 cyan
845 color of helpbox
846 disp_menu_boxchars ││──┌┐└┘├┤ box characters to use for menus
847 disp_menu_more » command submenu indicator
848 disp_menu_push ⎘ indicator if command pushes sheet
849 onto sheet stack
850 disp_menu_input … indicator if input required for
851 command
852 disp_menu_fmt Ctrl+H for help menu
853 right-side menu format string
854 disp_histogram * histogram element character
855 disp_histolen 50 width of histogram column
856 disp_replay_play ▶ status indicator for active re‐
857 play
858 disp_replay_pause ‖ status indicator for paused re‐
859 play
860 color_status_replay green color of replay status indicator
861 disp_canvas_charset
862 ⠀⠁⠂⠃⠄⠅⠆⠇⠈⠉⠊⠋⠌⠍⠎⠏⠐⠑⠒⠓⠔⠕⠖⠗⠘⠙⠚⠛⠜⠝⠞⠟⠠⠡⠢⠣⠤⠥⠦⠧⠨⠩⠪⠫⠬⠭⠮⠯⠰⠱⠲⠳⠴⠵⠶⠷⠸⠹⠺⠻⠼⠽⠾⠿⡀⡁⡂⡃⡄⡅⡆⡇⡈⡉⡊⡋⡌⡍⡎⡏⡐⡑⡒⡓⡔⡕⡖⡗⡘⡙⡚⡛⡜⡝⡞⡟⡠⡡⡢⡣⡤⡥⡦⡧⡨⡩⡪⡫⡬⡭⡮⡯⡰⡱⡲⡳⡴⡵⡶⡷⡸⡹⡺⡻⡼⡽⡾⡿⢀⢁⢂⢃⢄⢅⢆⢇⢈⢉⢊⢋⢌⢍⢎⢏⢐⢑⢒⢓⢔⢕⢖⢗⢘⢙⢚⢛⢜⢝⢞⢟⢠⢡⢢⢣⢤⢥⢦⢧⢨⢩⢪⢫⢬⢭⢮⢯⢰⢱⢲⢳⢴⢵⢶⢷⢸⢹⢺⢻⢼⢽⢾⢿⣀⣁⣂⣃⣄⣅⣆⣇⣈⣉⣊⣋⣌⣍⣎⣏⣐⣑⣒⣓⣔⣕⣖⣗⣘⣙⣚⣛⣜⣝⣞⣟⣠⣡⣢⣣⣤⣥⣦⣧⣨⣩⣪⣫⣬⣭⣮⣯⣰⣱⣲⣳⣴⣵⣶⣷⣸⣹⣺⣻⣼⣽⣾⣿
863 charset to render 2x4 blocks on
864 canvas
865 disp_pixel_random False randomly choose attr from set of
866 pixels instead of most common
867 color_graph_hidden 238 blue color of legend for hidden attri‐
868 bute
869 color_graph_selected bold color of selected graph points
870 color_graph_axis bold color for graph axis labels
871 color_add_pending green color for rows pending add
872 color_change_pending reverse yellow color for cells pending modifica‐
873 tion
874 color_delete_pending red color for rows pending delete
875 color_xword_active green color of active clue
876
878 vd
879 launch DirSheet for current directory
880
881 vd foo.tsv
882 open the file foo.tsv in the current directory
883
884 vd -f ddw
885 open blank sheet of type ddw
886
887 vd new.tsv
888 open new blank tsv sheet named new
889
890 vd -f sqlite bar.db
891 open the file bar.db as a sqlite database
892
893 vd foo.tsv -n -f sqlite bar.db
894 open foo.tsv as tsv and bar.db as a sqlite database
895
896 vd -f sqlite foo.tsv bar.db
897 open both foo.tsv and bar.db as a sqlite database
898
899 vd -b countries.fixed -o countries.tsv
900 convert countries.fixed (in fixed width format) to countries.tsv (in tsv
901 format)
902
903 vd postgres://username:password@hostname:port/database
904 open a connection to the given postgres database
905
906 vd --play tests/pivot.vd --replay-wait 1 --output tests/pivot.tsv
907 replay tests/pivot.vd, waiting 1 second between commands, and output the
908 final sheet to test/pivot.tsv
909
910 ls -l | vd -f fixed --skip 1 --header 0
911 parse the output of ls -l into usable data
912
913 ls | vd | lpr
914 interactively select a list of filenames to send to the printer
915
916 vd newfile.tsv
917 open a blank sheet named newfile if file does not exist
918
919 vd sample.xlsx +:sheet1:2:3
920 launch with sheet1 at top-of-stack, and cursor at column 2 and row 3
921
922 vd -P open-plugins
923 preplay longname open-plugins before starting the session
924
926 At the start of every session, VisiData looks for $HOME/.visidatarc, and
927 calls Python exec() on its contents if it exists. For example:
928
929 options.min_memory_mb=100 # stop processing without 100MB free
930
931 bindkey('0', 'go-leftmost') # alias '0' to go to first column, like vim
932
933 def median(values):
934 L = sorted(values)
935 return L[len(L)//2]
936
937 vd.aggregator('median', median)
938
939 Functions defined in .visidatarc are available in python expressions
940 (e.g. in derived columns).
941
943 Core VisiData includes these sources:
944
945 tsv (tab-separated value)
946 Plain and simple. VisiData writes tsv format by default. See the
947 --tsv-delimiter option.
948
949 csv (comma-separated value)
950 .csv files are a scourge upon the earth, and still regrettably
951 common.
952 See the --csv-dialect, --csv-delimiter, --csv-quotechar, and
953 --csv-skipinitialspace options.
954 Accepted dialects are excel-tab, unix, and excel.
955
956 fixed (fixed width text)
957 Columns are autodetected from the first 1000 rows (adjustable with
958 --fixed-rows).
959
960 json (single object) and jsonl/ndjson/ldjson (one object per line).
961 Cells containing lists (e.g. [3]) or dicts ({3}) can be expanded
962 into new columns with ( and unexpanded with ).
963
964 sqlite
965 May include multiple tables. The initial sheet is the table
966 directory; Enter loads the entire table into memory. z^S saves
967 modifications to source.
968
969 URL schemes are also supported:
970 http (requires requests); can be used as transport for with another
971 filetype
972
973 For a list of all remaining formats supported by VisiData, see
974 https://visidata.org/formats.
975
976 In addition, .zip, .gz, .bz2, .xz, ,zstd, and .zst files are decompressed
977 on the fly.
978
980 VisiData was made by Saul Pwanson <vd@saul.pw>.
981
982Linux/MacOS December 12, 2021 Linux/MacOS