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 for cur‐
48                      rent sheet
49     Space longname   execute command by its longname
50
51       U              undo the most recent modification (requires enabled
52                      options.undo)
53       R              redo the most recent undo (requires enabled
54                      options.undo)
55
56   Cursor Movement
57     Arrow PgUp       go as expected
58      h   j   k   l   go left/down/up/right
59     gh  gj  gk  gl   go all the way to the left/bottom/top/right of sheet
60          G  gg       go all the way to the bottom/top of sheet
61     Ic. End  Home    go all the way to the bottom/top of sheet
62     ^B  ^F           scroll one page back/forward
63     ^Left ^Right     scroll one page left/right
64     zz               scroll current row to center of screen
65
66     ^^ (Ctrl+^)      jump to previous sheet (swaps with current sheet)
67
68      /   ? regex     search for regex forward/backward in current column
69     g/  g? regex     search for regex forward/backward over all visible
70                      columns
71     z/  z? expr      search by Python expr forward/backward in current column
72                      (with column names as variables)
73      n   N           go to next/previous match from last regex search
74
75      <   >           go up/down current column to next value
76     z<  z>           go up/down current column to next null value
77      {   }           go up/down current column to next selected row
78
79      c regex         go to next column with name matching regex
80      r regex         go to next row with key matching regex
81     zc  zr number    go to column/row number (0-based)
82
83      H   J   K   L   slide current row/column left/down/up/right
84     gH  gJ  gK  gL   slide current row/column all the way to the left/bot‐
85                      tom/top/right of sheet
86     zH  zJ  zK  zK number
87                      slide current row/column number positions to the
88                      left/down/up/right
89
90     zh  zj  zk  zl   scroll one left/down/up/right
91
92   Column Manipulation
93       _ (underbar)   toggle width of current column between full and default
94                      width
95      g_              toggle widths of all visible columns between full and
96                      default width
97      z_ number       adjust width of current column to number
98     gz_ number       adjust widths of all visible columns to Ar number
99
100      - (hyphen)      hide current column
101     z-               reduce width of current column by half
102     gv               unhide all columns
103
104     ! z!             toggle/unset current column as a key column
105     ~  #  %  $  @  z#
106                      set type of current column to str/int/float/cur‐
107                      rency/date/len
108       ^              rename current column
109      g^              rename all unnamed visible columns to contents of se‐
110                      lected rows (or current row)
111      z^              rename current column to combined contents of current
112                      cell in selected rows (or current row)
113     gz^              rename all visible columns to combined contents of cur‐
114                      rent column for selected rows (or current row)
115
116       = expr         create new column from Python expr, with column names,
117                      and attributes, as variables
118      g= expr         set current column for selected rows to result of Python
119                      expr
120     gz= expr         set current column for selected rows to the items in
121                      result of Python sequence expr
122      z= expr         evaluate Python expression on current row and set
123                      current cell with result of Python expr
124
125       i              add column with incremental values
126      gi              set current column for selected rows to incremental
127                      values
128      zi step         add column with values at increment step
129     gzi step         set current column for selected rows at increment step
130
131      ' (tick)        add a frozen copy of current column with all cells eval‐
132                      uated
133     g'               open a frozen copy of current sheet with all visible
134                      columns evaluated
135     z'  gz'          add/reset cache for current/all visible column(s)
136
137      : regex         add new columns from regex split; number of columns
138                      determined by example row at cursor
139      ; regex         add new columns from capture groups of regex (also
140                      requires example row)
141     z; expr          create new column from bash expr, with $columnNames as
142                      variables
143      * regex/subst   add column derived from current column, replacing regex
144                      with subst (may include \1 backrefs)
145     g*  gz* regex/subst
146                      modify selected rows in current/all visible column(s),
147                      replacing regex with subst (may include \1 backrefs)
148
149      (   g(          expand current/all visible column(s) of lists (e.g. [3])
150                      or dicts (e.g. {3}) one level
151     z(  gz( depth    expand current/all visible column(s) of lists (e.g. [3])
152                      or dicts (e.g. {3}) to given depth (0= fully)
153      )               unexpand current column; restore original column and re‐
154                      move other columns at this level
155     zM               row-wise expand current column of lists (e.g. [3]) or
156                      dicts (e.g. {3}) within that column
157
158   Row Selection
159       s   t   u      select/toggle/unselect current row
160      gs  gt  gu      select/toggle/unselect all rows
161      zs  zt  zu      select/toggle/unselect all rows from top to cursor
162     gzs gzt gzu      select/toggle/unselect all rows from cursor to bottom
163      |   \ regex     select/unselect rows matching regex in current column
164     g|  g\ regex     select/unselect rows matching regex in any visible
165                      column
166     z|  z\ expr      select/unselect rows matching Python expr in any visible
167                      column
168      , (comma)       select rows matching display value of current cell in
169                      current column
170     g,               select rows matching display value of current row in all
171                      visible columns
172     z, gz,           select rows matching typed value of current cell/row in
173                      current column/all visible columns
174
175   Row Sorting/Filtering
176       [    ]         sort ascending/descending by current column; replace any
177                      existing sort criteria
178      g[   g]         sort ascending/descending by all key columns; replace
179                      any existing sort criteria
180      z[   z]         sort ascending/descending by current column; add to ex‐
181                      isting sort criteria
182     gz[  gz]         sort ascending/descending by all key columns; add to ex‐
183                      isting sort criteria
184      "               open duplicate sheet with only selected rows
185     g"               open duplicate sheet with all rows
186     gz"              open duplicate sheet with deepcopy of selected rows
187
188     The rows in these duplicated sheets (except deepcopy) are references to
189     rows on the original source sheets, and so edits to the filtered rows
190     will naturally be reflected in the original rows.  Use g' to freeze sheet
191     contents in a deliberate copy.
192
193   Editing Rows and Cells
194       a   za         append blank row/column; appended columns cannot be
195                      copied to clipboard
196      ga  gza number  append number blank rows/columns
197       d   gd         delete current/selected row(s)
198       y   gy         yank (copy) current/all selected row(s) to clipboard in
199                      Memory Sheet
200       x   gx         cut (copy and delete) current/all selected row(s) to
201                      clipboard in Memory Sheet
202      zy  gzy         yank (copy) contents of current column for
203                      current/selected row(s) to clipboard in Memory Sheet
204      zd  gzd         set contents of current column for current/selected
205                      row(s) to options.null_value
206      zx  gzx         cut (copy and delete) contents of current column for
207                      current/selected row(s) to clipboard in Memory Sheet
208       p    P         paste clipboard rows after/before current row
209      zp  gzp         set cells of current column for current/selected row(s)
210                      to last clipboard value
211      zP  gzP         paste to cells of current column for current/selected
212                      row(s) using the system clipboard
213       Y   gY         yank (copy) current/all selected row(s) to system
214                      clipboard (using options.clipboard_copy_cmd)
215      zY  gzY         yank (copy) contents of current column for
216                      current/selected row(s) to system clipboard (using
217                      options.clipboard_copy_cmd)
218       f              fill null cells in current column with contents of non-
219                      null cells up the current column
220       e text         edit contents of current cell
221      ge text         set contents of current column for selected rows to text
222
223     Commands While Editing Input
224        Enter  ^C        accept/abort input
225        ^O  g^O          open external $EDITOR to edit contents of current/se‐
226                         lected rows in current column
227        ^R               reload initial value
228        ^A   ^E          go to beginning/end of line
229        ^B   ^F          go back/forward one character
230        ^←   ^→ (arrow)  go back/forward one word
231        ^H   ^D          delete previous/current character
232        ^T               transpose previous and current characters
233        ^U   ^K          clear from cursor to beginning/end of line
234        ^Y               paste from cell clipboard
235        Backspace  Del   delete previous/current character
236        Insert           toggle insert mode
237        Up  Down         set contents to previous/next in history
238        Tab  Shift+Tab   autocomplete input (when available)
239        Shift+Arrow      move cursor in direction of Arrow and re-enter edit
240                         mode
241
242   Data Toolkit
243      o input         open input in VisiData
244     zo               open file or url from path in current cell
245     ^S g^S filename  save current/all sheet(s) to filename in format
246                      determined by extension (default .tsv)
247                      Note: if the format does not support multisave, or the
248                      filename ends in a /, a directory will be created.
249     z^S filename     save current column only to filename in format
250                      determined by extension (default .tsv)
251     ^D filename.vdj  save CommandLog to filename.vdj file
252     A                open new blank sheet with one column
253     T                open new sheet that has rows and columns of current
254                      sheet transposed
255
256      + aggregator    add aggregator to current column (see Frequency Table)
257     z+ aggregator    display result of aggregator over values in selected
258                      rows for current column; store result in Memory Sheet
259      &               append top two sheets in Sheets Stack
260     g&               append all sheets in Sheets Stack
261
262      w nBefore nAfter
263                      add column where each row contains a list of that row,
264                      nBefore rows, and nAfter rows
265
266   Data Visualization
267      . (dot)       plot current numeric column vs key columns. The numeric
268                    key column is used for the x-axis; categorical key column
269                    values determine color.
270     g.             plot a graph of all visible numeric columns vs key
271                    columns.
272
273     If rows on the current sheet represent plottable coordinates (as in .shp
274     or vector .mbtiles sources),  . plots the current row, and g. plots all
275     selected rows (or all rows if none selected).
276
277     Canvas-specific Commands
278         +   -              increase/decrease zoom level, centered on cursor
279         _ (underbar)       zoom to fit full extent
280        z_ (underbar)       set aspect ratio
281         x xmin xmax        set xmin/xmax on graph
282         y ymin ymax        set ymin/ymax on graph
283         s   t   u          select/toggle/unselect rows on source sheet con‐
284                            tained within canvas cursor
285        gs  gt  gu          select/toggle/unselect rows on source sheet visi‐
286                            ble on screen
287         d                  delete rows on source sheet contained within can‐
288                            vas cursor
289        gd                  delete rows on source sheet visible on screen
290         Enter              open sheet of source rows contained within canvas
291                            cursor
292        gEnter              open sheet of source rows visible on screen
293         1 - 9              toggle display of layers
294        ^L                  redraw all pixels on canvas
295         v                  toggle show_graph_labels option
296        mouse scrollwheel   zoom in/out of canvas
297        left click-drag     set canvas cursor
298        right click-drag    scroll canvas
299
300   Split Screen
301      Z             split screen in half, so that second sheet on the stack is
302                    visible in a second pane
303     zZ             split screen, and queries for height of second pane
304
305     Split Window specific Commands
306        gZ                  close an already split screen, current pane full
307                            screens
308         Z                  push second sheet on current pane's stack to the
309                            top of the other pane's stack
310         Tab                jump to other pane
311        gTab                swap panes
312        g Ctrl+^            cycle through sheets
313
314   Other Commands
315     Q                quit current sheet and remove it from the CommandLog
316     v                toggle sheet-specific visibility (multi-line rows on
317                      Sheet, legends/axes on Graph)
318
319      ^E  g^E         view traceback for most recent error(s)
320     z^E              view traceback for error in current cell
321
322      ^L              refresh screen
323      ^R              reload current sheet
324      ^Z              suspend VisiData process
325      ^G              show cursor position and bounds of current sheet on sta‐
326                      tus line
327      ^V              show version and copyright information on status line
328      ^P              open Status History
329     m keystroke      first, begin recording macro; second, prompt for
330                      keystroke , and complete recording. Macro can then be
331                      executed everytime provided keystroke is used. Will
332                      override existing keybinding. Macros will run on current
333                      row, column, sheet.
334     gm               open an index of all existing macros. Can be directly
335                      viewed with Enter, and then modified with ^S.
336
337      ^Y  z^Y  g^Y    open current row/cell/sheet as Python object
338      ^X expr         evaluate Python expr and opens result as Python object
339     z^X expr         evaluate Python expr, in context of current row, and
340                      open result as Python object
341     g^X module       import Python module in the global scope
342
343   Internal Sheets List
344      .  Directory Sheet             browse properties of files in a directory
345      .  Plugins Sheet               browse, install, and (de)activate plugins
346      .  Memory Sheet (Alt+Shift+M)        browse saved values, including
347         clipboard
348
349     Metasheets
350      .  Columns Sheet (Shift+C)     edit column properties
351      .  Sheets Sheet (Shift+S)      jump between sheets or join them together
352      .  Options Sheet (Shift+O)     edit configuration options
353      .  Commandlog (Shift+D)        modify and save commands for replay
354      .  Error Sheet (Ctrl+E)            view last error
355      .  Status History (Ctrl+P)         view history of status messages
356      .  Threads Sheet (Ctrl+T)          view, cancel, and profile
357         asynchronous threads
358
359     Derived Sheets
360      .  Frequency Table (Shift+F)   group rows by column value, with
361         aggregations of other columns
362      .  Describe Sheet (Shift+I)    view summary statistics for each column
363      .  Pivot Table (Shift+W)       group rows by key and summarize current
364         column
365      .  Melted Sheet (Shift+M)      unpivot non-key columns into
366         variable/value columns
367      .  Transposed Sheet (Shift+T)   open new sheet with rows and columns
368         transposed
369
370   INTERNAL SHEETS
371   Directory Sheet
372     (global commands)
373        Space open-dir-current
374                         open the Directory Sheet for the current directory
375     (sheet-specific commands)
376        Enter  gEnter    open current/selected file(s) as new sheet(s)
377         ^O  g^O         open current/selected file(s) in external $EDITOR
378         ^R  z^R  gz^R   reload information for all/current/selected file(s)
379          d   gd         delete current/selected file(s) from filesystem, upon
380                         commit
381          y   gy directory
382                         copy current/selected file(s) to given directory,
383                         upon commit
384          e   ge name    rename current/selected file(s) to name
385          ` (backtick)   open parent directory
386        z^S              commit changes to file system
387
388   Plugins Sheet
389     Browse through a list of available plugins. VisiData needs to be
390     restarted before plugin activation takes effect. Installation may require
391     internet access.
392     (global commands)
393        Space open-plugins
394                         open the Plugins Sheet
395     (sheet-specific commands)
396        a                install and activate current plugin
397        d                deactivate current plugin
398
399   Memory Sheet
400     Browse through a list of stored values, referanceable in expressions
401     through their name.
402     (global commands)
403        Alt+Shift+M      open the Memory Sheet
404        Alt+M name       store value in current cell in Memory Sheet under
405                         name
406     (sheet-specific commands)
407        e                edit either value or name, to edit reference
408
409   METASHEETS
410   Columns Sheet (Shift+C)
411     Properties of columns on the source sheet can be changed with standard
412     editing commands (e ge g= Del) on the Columns Sheet. Multiple aggregators
413     can be set by listing them (separated by spaces) in the aggregators
414     column. The 'g' commands affect the selected rows, which are the literal
415     columns on the source sheet.
416     (global commands)
417        gC               open Columns Sheet with all visible columns from all
418                         sheets
419     (sheet-specific commands)
420         &               add column from appending selected source columns
421        g! gz!           toggle/unset selected columns as key columns on
422                         source sheet
423        g+ aggregator    add Ar aggregator No to selected source columns
424        g- (hyphen)      hide selected columns on source sheet
425        g~ g# g% g$ g@ gz# z%
426                         set type of selected columns on source sheet to
427                         str/int/float/currency/date/len/floatsi
428         Enter           open a Frequency Table sheet grouped by column
429                         referenced in current row
430
431   Sheets Sheet (Shift+S)
432     open Sheets Stack, which contains only the active sheets on the current
433     stack
434     (global commands)
435        gS               open Sheets Sheet, which contains all sheets from
436                         current session, active and inactive
437        Alt number       jump to sheet number
438     (sheet-specific commands)
439         Enter           jump to sheet referenced in current row
440        gEnter           push selected sheets to top of sheet stack
441         a               add row to reference a new blank sheet
442        gC  gI           open Columns Sheet/Describe Sheet with all visible
443                         columns from selected sheets
444        g^R              reload all selected sheets
445        z^C  gz^C        abort async threads for current/selected sheets(s)
446        g^S              save selected or all sheets
447         & jointype      merge selected sheets with visible columns from all,
448                         keeping rows according to jointype:
449                         .  inner  keep only rows which match keys on all
450                            sheets
451                         .  outer  keep all rows from first selected sheet
452                         .  full   keep all rows from all sheets (union)
453                         .  diff   keep only rows NOT in all sheets
454                         .  append combine all rows from all sheets
455                         .  concat similar to 'append' but keep first sheet
456                            type and columns
457                         .  extend copy first selected sheet, keeping all rows
458                            and sheet type, and extend with columns from other
459                            sheets
460                         .  merge  mostly keep all rows from first selected
461                            sheet, except prioritise cells with non-null/non-
462                            error values
463
464   Options Sheet (Shift+O)
465     (global commands)
466        Shift+O          edit global options (apply to all sheets)
467        zO               edit sheet options (apply to current sheet only)
468        gO               open options.config as TextSheet
469     (sheet-specific commands)
470        Enter  e         edit option at current row
471        d                remove option override for this context
472        ^S               save option configuration to foo.visidatarc
473
474   CommandLog (Shift+D)
475     (global commands)
476        D                open current sheet's CommandLog with all other loose
477                         ends removed; includes commands from parent sheets
478        gD               open global CommandLog for all commands executed in
479                         the current session
480        zD               open current sheet's CommandLog with the parent
481                         sheets commands' removed
482     (sheet-specific commands)
483          x              replay command in current row
484         gx              replay contents of entire CommandLog
485         ^C              abort replay
486
487   Threads Sheet (Ctrl+T)
488     (global commands)
489        ^T               open global Threads Sheet for all asynchronous
490                         threads running
491        z^T              open current sheet's Threads Sheet
492     (sheet-specific commands)
493         ^C              abort thread at current row
494        g^C              abort all threads on current Threads Sheet
495
496   DERIVED SHEETS
497   Frequency Table (Shift+F)
498     A Frequency Table groups rows by one or more columns, and includes
499     summary columns for those with aggregators.
500     (global commands)
501        gF               open Frequency Table, grouped by all key columns on
502                         source sheet
503        zF               open one-line summary for all rows and selected rows
504     (sheet-specific commands)
505         s   t   u       select/toggle/unselect these entries in source sheet
506         Enter  gEnter   open copy of source sheet with rows that are grouped
507                         in current cell / selected rows
508
509   Describe Sheet (Shift+I)
510     A Describe Sheet contains descriptive statistics for all visible columns.
511     (global commands)
512        gI               open Describe Sheet for all visible columns on all
513                         sheets
514     (sheet-specific commands)
515        zs  zu           select/unselect rows on source sheet that are being
516                         described in current cell
517         !               toggle/unset current column as a key column on source
518                         sheet
519         Enter           open a Frequency Table sheet grouped on column
520                         referenced in current row
521        zEnter           open copy of source sheet with rows described in cur‐
522                         rent cell
523
524   Pivot Table (Shift+W)
525     Set key column(s) and aggregators on column(s) before pressing Shift+W on
526     the column to pivot.
527     (sheet-specific commands)
528         Enter           open sheet of source rows aggregated in current pivot
529                         row
530        zEnter           open sheet of source rows aggregated in current pivot
531                         cell
532
533   Melted Sheet (Shift+M)
534     Open Melted Sheet (unpivot), with key columns retained and all non-key
535     columns reduced to Variable-Value rows.
536     (global commands)
537        gM regex         open Melted Sheet (unpivot), with key columns
538                         retained and regex capture groups determining how the
539                         non-key columns will be reduced to Variable-Value
540                         rows.
541
542   Python Object Sheet (^X ^Y g^Y z^Y)
543     (sheet-specific commands)
544         Enter           dive further into Python object
545         v               toggle show/hide for methods and hidden properties
546        gv  zv           show/hide methods and hidden properties
547

COMMANDLINE OPTIONS

549     Add -n/--nonglobal to make subsequent CLI options sheet-specific
550     (applying only to paths specified directly on the CLI). By default, CLI
551     options apply to all sheets.
552
553     Options can also be set via the Options Sheet or a .visidatarc (see
554     FILES).
555
556     -P=longname                  preplay longname before replay or regular
557                                  launch; limited to Base Sheet bound commands
558     +toplevel:subsheet:col:row   launch vd with subsheet of toplevel at
559                                  top-of-stack, and cursor at col and row; all
560                                  arguments are optional
561
562     -f, --filetype=filetype      tsv                set loader to use for
563                                  filetype instead of file extension
564     -d, --delimiter=delimiter    \t                 field delimiter to use
565                                  for tsv/usv filetype
566     -y, --confirm-overwrite=F    True               overwrite existing files
567                                  without confirmation
568     -N, --nothing=T              False               disable loading
569                                  .visidatarc and plugin addons
570     --visidata-dir=str           ~/.visidata/       directory to load and
571                                                     store additional files
572     --mouse-interval=int         1                  max time between
573                                                     press/release for click
574                                                     (ms)
575     --null-value=NoneType        None               a value to be counted as
576                                                     null
577     --undo=bool                  True               enable undo/redo
578     --col-cache-size=int         0                  max number of cache en‐
579                                                     tries in each cached col‐
580                                                     umn
581     --clean-names                False              clean column/sheet names
582                                                     to be valid Python iden‐
583                                                     tifiers
584     --default-width=int          20                 default column width
585     --default-height=int         4                  default column height
586     --textwrap-cells=bool        True               wordwrap text for multi‐
587                                                     line rows
588     --quitguard                  False              confirm before quitting
589                                                     modified sheet
590     --debug                      False              exit on error and display
591                                                     stacktrace
592     --skip=int                   0                  skip N rows before header
593     --header=int                 1                  parse first N rows as
594                                                     column names
595     --load-lazy                  False              load subsheets always
596                                                     (False) or lazily (True)
597     --force-256-colors           False              use 256 colors even if
598                                                     curses reports fewer
599     --note-pending=str           ⌛                 note to display for pend‐
600                                                     ing cells
601     --note-format-exc=str        ?                  cell note for an excep‐
602                                                     tion during formatting
603     --note-getter-exc=str        !                  cell note for an excep‐
604                                                     tion during computation
605     --note-type-exc=str          !                  cell note for an excep‐
606                                                     tion during type conver‐
607                                                     sion
608     --scroll-incr=int            -3                 amount to scroll with
609                                                     scrollwheel
610     --name-joiner=str            _                  string to join sheet or
611                                                     column names
612     --value-joiner=str                              string to join display
613                                                     values
614     --wrap                       False              wrap text to fit window
615                                                     width on TextSheet
616     --save-filetype=str          tsv                specify default file type
617                                                     to save as
618     --profile                    False              enable profiling on
619                                                     threads
620     --min-memory-mb=int          0                  minimum memory to con‐
621                                                     tinue loading and async
622                                                     processing
623     --encoding=str               utf-8              encoding passed to
624                                                     codecs.open
625     --encoding-errors=str        surrogateescape    encoding_errors passed to
626                                                     codecs.open
627     --input-history=str                             basename of file to store
628                                                     persistent input history
629     --bulk-select-clear          False              clear selected rows be‐
630                                                     fore new bulk selections
631     --some-selected-rows         False              if no rows selected, if
632                                                     True, someSelectedRows
633                                                     returns all rows; if
634                                                     False, fails
635     --delimiter=str                                 field delimiter to use
636                                                     for tsv/usv filetype
637     --row-delimiter=str                             " row delimiter to use
638                                                     for tsv/usv filetype
639     --tsv-safe-newline=str                          replacement for newline
640                                                     character when saving to
641                                                     tsv
642     --tsv-safe-tab=str                              replacement for tab char‐
643                                                     acter when saving to tsv
644     --visibility=int             0                  visibility level (0=low,
645                                                     1=high)
646     --default-sample-size=int    100                number of rows to sample
647                                                     for regex.split (0=all)
648     --fmt-expand-dict=str        %s.%s              format str to use for
649                                                     names of columns expanded
650                                                     from dict (colname, key)
651     --fmt-expand-list=str        %s[%s]             format str to use for
652                                                     names of columns expanded
653                                                     from list (colname, in‐
654                                                     dex)
655     --json-indent=NoneType       None               indent to use when saving
656                                                     json
657     --json-sort-keys             False              sort object keys when
658                                                     saving to json
659     --default-colname=str                           column name to use for
660                                                     non-dict rows
661     --filetype=str                                  specify file type
662     --replay-wait=float          0.0                time to wait between re‐
663                                                     played commands, in sec‐
664                                                     onds
665     --replay-movement            False              insert movements during
666                                                     replay
667     --rowkey-prefix=str          キ                 string prefix for rowkey
668                                                     in the cmdlog
669     --cmdlog-histfile=str                           file to autorecord each
670                                                     cmdlog action to
671     --confirm-overwrite=bool     True               whether to prompt for
672                                                     overwrite confirmation on
673                                                     save
674     --safe-error=str             #ERR               error string to use while
675                                                     saving
676     --clipboard-copy-cmd=str     xclip -selection clipboard -filter
677                                                     command to copy stdin to
678                                                     system clipboard
679     --clipboard-paste-cmd=str    xclip -selection clipboard -o
680                                                     command to send contents
681                                                     of system clipboard to
682                                                     stdout
683     --fancy-chooser              False              a nicer selection inter‐
684                                                     face for aggregators and
685                                                     jointype
686     --describe-aggrs=str         mean stdev         numeric aggregators to
687                                                     calculate on Describe
688                                                     sheet
689     --histogram-bins=int         0                  number of bins for his‐
690                                                     togram of numeric columns
691     --numeric-binning            False              bin numeric columns into
692                                                     ranges
693     --regex-flags=str            I                  flags to pass to re.com‐
694                                                     pile() [AILMSUX]
695     --regex-maxsplit=int         0                  maxsplit to pass to
696                                                     regex.split
697     --show-graph-labels=bool     True               show axes and legend on
698                                                     graph
699     --plot-colors=str                               list of distinct colors
700                                                     to use for plotting dis‐
701                                                     tinct objects
702     --zoom-incr=float            2.0                amount to multiply cur‐
703                                                     rent zoomlevel when zoom‐
704                                                     ing
705     --motd-url=str                                  source of randomized
706                                                     startup messages
707     --dir-recurse                False              walk source path recur‐
708                                                     sively on DirSheet
709     --dir-hidden                 False              load hidden files on
710                                                     DirSheet
711     --config=Path                /home/kefala/.visidatarc
712                                                     config file to exec in
713                                                     Python
714     --play=str                                      file.vd to replay
715     --batch                      False              replay in batch mode
716                                                     (with no interface and
717                                                     all status sent to std‐
718                                                     out)
719     --output=NoneType            None               save the final visible
720                                                     sheet to output at the
721                                                     end of replay
722     --preplay=str                                   longnames to preplay be‐
723                                                     fore replay
724     --imports=str                plugins            imports to preload before
725                                                     .visidatarc (command-line
726                                                     only)
727     --nothing                    False              no config, no plugins,
728                                                     nothing extra
729     --unfurl-empty               False              if unfurl includes rows
730                                                     for empty containers
731     --incr-base=float            1.0                start value for column
732                                                     increments
733     --csv-dialect=str            excel              dialect passed to
734                                                     csv.reader
735     --csv-delimiter=str          ,                  delimiter passed to
736                                                     csv.reader
737     --csv-quotechar=str          "                  quotechar passed to
738                                                     csv.reader
739     --csv-skipinitialspace=bool  True               skipinitialspace passed
740                                                     to csv.reader
741     --csv-escapechar=NoneType    None               escapechar passed to
742                                                     csv.reader
743     --csv-lineterminator=str                        " lineterminator passed
744                                                     to csv.writer
745     --safety-first               False              sanitize input/output to
746                                                     handle edge cases, with a
747                                                     performance cost
748     --xlsx-meta-columns          False              include columns for cell
749                                                     objects, font colors, and
750                                                     fill colors
751     --sqlite-onconnect=str                          sqlite statement to exe‐
752                                                     cute after opening a con‐
753                                                     nection
754     --fixed-rows=int             1000               number of rows to check
755                                                     for fixed width columns
756     --fixed-maxcols=int          0                  max number of fixed-width
757                                                     columns to create (0 is
758                                                     no max)
759     --postgres-schema=str        public             The desired schema for
760                                                     the Postgres database
761     --http-max-next=int          0                  max next.url pages to
762                                                     follow in http response
763     --http-req-headers=dict      {}                 http headers to send to
764                                                     requests
765     --html-title=str             <h2>{sheet.name}</h2>
766                                                     table header when saving
767                                                     to html
768     --pcap-internet=str          n                  (y/s/n) if save_dot in‐
769                                                     cludes all internet hosts
770                                                     separately (y), combined
771                                                     (s), or does not include
772                                                     the internet (n)
773     --xml-parser-huge-tree=bool  True               allow very deep trees and
774                                                     very long text content
775     --graphviz-edge-labels=bool  True               whether to include edge
776                                                     labels on graphviz dia‐
777                                                     grams
778     --npy-allow-pickle           False              numpy allow unpickling
779                                                     objects (unsafe)
780     --pdf-tables                 False              parse PDF for tables in‐
781                                                     stead of pages of text
782     --plugins-url=str            https://visidata.org/plugins/plugins.jsonl
783                                                     source of plugins sheet
784     --plugins-autoload=bool      True               do not autoload plugins
785                                                     if False
786
787   DISPLAY OPTIONS
788     Display options can only be set via the Options Sheet or a .visidatarc
789     (see FILES).
790
791     disp_splitwin_pct   0                   height of second sheet on screen
792     color_sidebar       black on 114 blue   color of sidebar
793     disp_float_fmt      {:.02f}             default fmtstr to format for
794                                             float values
795     disp_int_fmt        {:d}                default fmtstr to format for int
796                                             values
797     disp_note_none      ⌀                   visible contents of a cell whose
798                                             value is None
799     disp_truncator      …                   indicator that the contents are
800                                             only partially visible
801     disp_oddspace       ·                   displayable character for odd
802                                             whitespace
803     disp_more_left      <                   header note indicating more col‐
804                                             umns to the left
805     disp_more_right     >                   header note indicating more col‐
806                                             umns to the right
807     disp_error_val                          displayed contents for computa‐
808                                             tion exception
809     disp_ambig_width    1                   width to use for unicode chars
810                                             marked ambiguous
811     disp_pending                            string to display in pending
812                                             cells
813     color_note_pending  bold magenta        color of note in pending cells
814     color_note_type     226 yellow          color of cell note for non-str
815                                             types in anytype columns
816     color_note_row      220 yellow          color of row note on left edge
817     disp_column_sep     │                   separator between columns
818     disp_keycol_sep     ║                   separator between key columns and
819                                             rest of columns
820     disp_rowtop_sep     
821     disp_rowmid_sep     
822     disp_rowbot_sep     
823     disp_rowend_sep     
824     disp_keytop_sep     
825     disp_keymid_sep     
826     disp_keybot_sep     
827     disp_endtop_sep     
828     disp_endmid_sep     
829     disp_endbot_sep     
830     disp_selected_note  
831     disp_sort_asc       ↑↟⇞⇡⇧⇑              characters for ascending sort
832     disp_sort_desc      ↓↡⇟⇣⇩⇓              characters for descending sort
833     color_default       white on black      the default fg and bg colors
834     color_default_hdr   bold                color of the column headers
835     color_bottom_hdr    underline           color of the bottom header row
836     color_current_row   reverse             color of the cursor row
837     color_current_col   bold                color of the cursor column
838     color_current_hdr   bold reverse        color of the header for the cur‐
839                                             sor column
840     color_column_sep    246 blue            color of column separators
841     color_key_col       81 cyan             color of key columns
842     color_hidden_col    8                   color of hidden columns on
843                                             metasheets
844     color_selected_row  215 yellow          color of selected rows
845     disp_rstatus_fmt     {sheet.longname} {sheet.nRows:9d} {sheet.rowtype}
846                                             {sheet.modifiedStatus}
847                                             {sheet.options.disp_selected_note}{sheet.nSelectedRows}
848                                             right-side status format string
849     disp_status_fmt     {sheet.shortcut}› {sheet.name}|
850                                             status line prefix
851     disp_lstatus_max    0                   maximum length of left status
852                                             line
853     disp_status_sep      │                  separator between statuses
854     color_keystrokes    bold 233 black on 110 cyan
855                                             color of input keystrokes on sta‐
856                                             tus line
857     color_status        bold black on 110 cyan
858                                             status line color
859     color_error         red                 error message color
860     color_warning       yellow              warning message color
861     color_top_status    underline           top window status bar color
862     color_active_status black on 110 cyan    active window status bar color
863     color_inactive_status 8 on black        inactive window status bar color
864     color_working       green               color of system running smoothly
865     color_edit_cell     white               cell color to use when editing
866                                             cell
867     disp_edit_fill      _                   edit field fill character
868     disp_unprintable    ·                   substitute character for unprint‐
869                                             ables
870     disp_currency_fmt   %.02f               default fmtstr to format for cur‐
871                                             rency values
872     disp_date_fmt       %Y-%m-%d            default fmtstr to strftime for
873                                             date values
874     disp_replay_play    ▶                   status indicator for active re‐
875                                             play
876     disp_replay_pause   ‖                   status indicator for paused re‐
877                                             play
878     color_status_replay green               color of replay status indicator
879     disp_formatter      generic             formatter to use for display and
880                                             saving
881     disp_menu           True                show menu on top line when not
882                                             active
883     disp_menu_keys      True                show keystrokes inline in sub‐
884                                             menus
885     color_menu          black on 110 cyan   color of menu items in general
886     color_menu_active   223 yellow on black
887                                             color of active menu items
888     color_menu_spec     black on 34 green   color of sheet-specific menu
889                                             items
890     color_menu_help     black italic on 110 cyan
891                                             color of helpbox
892     disp_menu_boxchars  ││──┌┐└┘├┤          box characters to use for menus
893     disp_menu_more      »                   command submenu indicator
894     disp_menu_push      ⎘                   indicator if command pushes sheet
895                                             onto sheet stack
896     disp_menu_input     …                   indicator if input required for
897                                             command
898     disp_menu_fmt       Ctrl+H for help menu
899                                             right-side menu format string
900     disp_histogram      ■                   histogram element character
901     disp_histolen       50                  width of histogram column
902     disp_canvas_charset
903                                             ⠀⠁⠂⠃⠄⠅⠆⠇⠈⠉⠊⠋⠌⠍⠎⠏⠐⠑⠒⠓⠔⠕⠖⠗⠘⠙⠚⠛⠜⠝⠞⠟⠠⠡⠢⠣⠤⠥⠦⠧⠨⠩⠪⠫⠬⠭⠮⠯⠰⠱⠲⠳⠴⠵⠶⠷⠸⠹⠺⠻⠼⠽⠾⠿⡀⡁⡂⡃⡄⡅⡆⡇⡈⡉⡊⡋⡌⡍⡎⡏⡐⡑⡒⡓⡔⡕⡖⡗⡘⡙⡚⡛⡜⡝⡞⡟⡠⡡⡢⡣⡤⡥⡦⡧⡨⡩⡪⡫⡬⡭⡮⡯⡰⡱⡲⡳⡴⡵⡶⡷⡸⡹⡺⡻⡼⡽⡾⡿⢀⢁⢂⢃⢄⢅⢆⢇⢈⢉⢊⢋⢌⢍⢎⢏⢐⢑⢒⢓⢔⢕⢖⢗⢘⢙⢚⢛⢜⢝⢞⢟⢠⢡⢢⢣⢤⢥⢦⢧⢨⢩⢪⢫⢬⢭⢮⢯⢰⢱⢲⢳⢴⢵⢶⢷⢸⢹⢺⢻⢼⢽⢾⢿⣀⣁⣂⣃⣄⣅⣆⣇⣈⣉⣊⣋⣌⣍⣎⣏⣐⣑⣒⣓⣔⣕⣖⣗⣘⣙⣚⣛⣜⣝⣞⣟⣠⣡⣢⣣⣤⣥⣦⣧⣨⣩⣪⣫⣬⣭⣮⣯⣰⣱⣲⣳⣴⣵⣶⣷⣸⣹⣺⣻⣼⣽⣾⣿
904                                             charset to render 2x4 blocks on
905                                             canvas
906     disp_pixel_random   False               randomly choose attr from set of
907                                             pixels instead of most common
908     color_graph_hidden  238 blue            color of legend for hidden attri‐
909                                             bute
910     color_graph_selected bold               color of selected graph points
911     color_graph_axis    bold                color for graph axis labels
912     color_add_pending   green               color for rows pending add
913     color_change_pending reverse yellow     color for cells pending modifica‐
914                                             tion
915     color_delete_pending red                color for rows pending delete
916     color_xword_active  green               color of active clue
917

EXAMPLES

919           vd
920     launch DirSheet for current directory
921
922           vd foo.tsv
923     open the file foo.tsv in the current directory
924
925           vd -f ddw
926     open blank sheet of type ddw
927
928           vd new.tsv
929     open new blank tsv sheet named new
930
931           vd -f sqlite bar.db
932     open the file bar.db as a sqlite database
933
934           vd foo.tsv -n -f sqlite bar.db
935     open foo.tsv as tsv and bar.db as a sqlite database
936
937           vd -f sqlite foo.tsv bar.db
938     open both foo.tsv and bar.db as a sqlite database
939
940           vd -b countries.fixed -o countries.tsv
941     convert countries.fixed (in fixed width format) to countries.tsv (in tsv
942     format)
943
944           vd postgres://username:password@hostname:port/database
945     open a connection to the given postgres database
946
947           vd --play tests/pivot.vd --replay-wait 1 --output tests/pivot.tsv
948     replay tests/pivot.vd, waiting 1 second between commands, and output the
949     final sheet to test/pivot.tsv
950
951           ls -l | vd -f fixed --skip 1 --header 0
952     parse the output of ls -l into usable data
953
954           ls | vd | lpr
955     interactively select a list of filenames to send to the printer
956
957           vd newfile.tsv
958     open a blank sheet named newfile if file does not exist
959
960           vd sample.xlsx +:sheet1:2:3
961     launch with sheet1 at top-of-stack, and cursor at column 2 and row 3
962
963           vd -P open-plugins
964     preplay longname open-plugins before starting the session
965

FILES

967     At the start of every session, VisiData looks for $HOME/.visidatarc, and
968     calls Python exec() on its contents if it exists. For example:
969
970        options.min_memory_mb=100  # stop processing without 100MB free
971
972        bindkey('0', 'go-leftmost')   # alias '0' to go to first column, like vim
973
974        def median(values):
975            L = sorted(values)
976            return L[len(L)//2]
977
978        vd.aggregator('median', median)
979
980     Functions defined in .visidatarc are available in python expressions
981     (e.g. in derived columns).
982

SUPPORTED SOURCES

984     Core VisiData includes these sources:
985
986        tsv (tab-separated value)
987           Plain and simple. VisiData writes tsv format by default. See the
988           --tsv-delimiter option.
989
990        csv (comma-separated value)
991           .csv files are a scourge upon the earth, and still regrettably
992           common.
993           See the --csv-dialect, --csv-delimiter, --csv-quotechar, and
994           --csv-skipinitialspace options.
995           Accepted dialects are excel-tab, unix, and excel.
996
997        fixed (fixed width text)
998           Columns are autodetected from the first 1000 rows (adjustable with
999           --fixed-rows).
1000
1001        json (single object) and jsonl/ndjson/ldjson (one object per line).
1002           Cells containing lists (e.g. [3]) or dicts ({3}) can be expanded
1003           into new columns with ( and unexpanded with ).
1004
1005        sqlite
1006           May include multiple tables. The initial sheet is the table
1007           directory; Enter loads the entire table into memory. z^S saves
1008           modifications to source.
1009
1010     URL schemes are also supported:
1011        http (requires requests); can be used as transport for with another
1012        filetype
1013
1014     For a list of all remaining formats supported by VisiData, see
1015     https://visidata.org/formats.
1016
1017     In addition, .zip, .gz, .bz2, .xz, ,zstd, and .zst files are decompressed
1018     on the fly.
1019

AUTHOR

1021     VisiData was made by Saul Pwanson <vd@saul.pw>.
1022
1023Linux/MacOS                    January 11, 2023                    Linux/MacOS
Impressum