1vd(1)                        Quick Reference Guide                       vd(1)
2

NAME

4     VisiData — a terminal utility for exploring and arranging tabular data
5

SYNOPSIS

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

DESCRIPTION

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

COMMANDLINE OPTIONS

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

EXAMPLES

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

FILES

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

SUPPORTED SOURCES

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

AUTHOR

975     VisiData was made by Saul Pwanson <vd@saul.pw>.
976
977Linux/MacOS                   September 19, 2021                   Linux/MacOS
Impressum