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