visidata 3.0.1__py3-none-any.whl → 3.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. visidata/__init__.py +12 -10
  2. visidata/_input.py +208 -199
  3. visidata/_open.py +4 -1
  4. visidata/_types.py +4 -3
  5. visidata/aggregators.py +88 -39
  6. visidata/apps/vdsql/_ibis.py +9 -11
  7. visidata/apps/vdsql/clickhouse.py +2 -2
  8. visidata/apps/vdsql/snowflake.py +1 -1
  9. visidata/apps/vgit/status.py +1 -1
  10. visidata/basesheet.py +11 -4
  11. visidata/canvas.py +66 -24
  12. visidata/clipboard.py +13 -6
  13. visidata/cliptext.py +7 -6
  14. visidata/cmdlog.py +40 -27
  15. visidata/column.py +14 -49
  16. visidata/ddw/regex.ddw +3 -2
  17. visidata/deprecated.py +14 -2
  18. visidata/desktop/visidata.desktop +2 -2
  19. visidata/editor.py +1 -0
  20. visidata/errors.py +1 -1
  21. visidata/experimental/sort_selected.py +54 -0
  22. visidata/expr.py +69 -18
  23. visidata/features/change_precision.py +1 -3
  24. visidata/features/cmdpalette.py +23 -4
  25. visidata/features/colorsheet.py +1 -1
  26. visidata/features/dedupe.py +3 -3
  27. visidata/features/go_col.py +71 -0
  28. visidata/features/graph_seaborn.py +1 -1
  29. visidata/features/join.py +20 -10
  30. visidata/features/layout.py +18 -5
  31. visidata/features/ping.py +16 -12
  32. visidata/features/regex.py +5 -5
  33. visidata/features/slide.py +15 -17
  34. visidata/features/status_source.py +3 -1
  35. visidata/features/sysedit.py +1 -1
  36. visidata/features/transpose.py +2 -1
  37. visidata/features/type_ipaddr.py +2 -4
  38. visidata/features/unfurl.py +1 -0
  39. visidata/form.py +2 -2
  40. visidata/freqtbl.py +16 -11
  41. visidata/fuzzymatch.py +1 -0
  42. visidata/graph.py +173 -12
  43. visidata/guide.py +61 -25
  44. visidata/guides/ClipboardGuide.md +48 -0
  45. visidata/guides/ColumnsGuide.md +52 -0
  46. visidata/guides/CommandsSheet.md +28 -0
  47. visidata/guides/DirSheet.md +34 -0
  48. visidata/guides/ErrorsSheet.md +17 -0
  49. visidata/guides/FrequencyTable.md +42 -0
  50. visidata/guides/GrepSheet.md +28 -0
  51. visidata/guides/JsonSheet.md +38 -0
  52. visidata/guides/MacrosSheet.md +19 -0
  53. visidata/guides/MeltGuide.md +52 -0
  54. visidata/guides/MemorySheet.md +7 -0
  55. visidata/guides/MenuGuide.md +26 -0
  56. visidata/guides/ModifyGuide.md +38 -0
  57. visidata/guides/PivotGuide.md +71 -0
  58. visidata/guides/RegexGuide.md +107 -0
  59. visidata/guides/SelectionGuide.md +44 -0
  60. visidata/guides/SlideGuide.md +26 -0
  61. visidata/guides/SortGuide.md +0 -0
  62. visidata/guides/SplitpaneGuide.md +15 -0
  63. visidata/guides/TypesSheet.md +43 -0
  64. visidata/guides/XsvGuide.md +36 -0
  65. visidata/help.py +6 -6
  66. visidata/hint.py +2 -1
  67. visidata/indexsheet.py +2 -2
  68. visidata/interface.py +13 -14
  69. visidata/keys.py +4 -1
  70. visidata/loaders/api_airtable.py +1 -1
  71. visidata/loaders/archive.py +1 -1
  72. visidata/loaders/csv.py +9 -5
  73. visidata/loaders/eml.py +11 -6
  74. visidata/loaders/f5log.py +1 -0
  75. visidata/loaders/fec.py +18 -42
  76. visidata/loaders/fixed_width.py +19 -3
  77. visidata/loaders/grep.py +121 -0
  78. visidata/loaders/html.py +1 -0
  79. visidata/loaders/http.py +6 -1
  80. visidata/loaders/json.py +22 -4
  81. visidata/loaders/jsonla.py +8 -2
  82. visidata/loaders/mailbox.py +1 -0
  83. visidata/loaders/markdown.py +25 -6
  84. visidata/loaders/msgpack.py +19 -0
  85. visidata/loaders/npy.py +0 -1
  86. visidata/loaders/odf.py +18 -4
  87. visidata/loaders/orgmode.py +1 -1
  88. visidata/loaders/rec.py +6 -4
  89. visidata/loaders/sas.py +11 -4
  90. visidata/loaders/scrape.py +0 -1
  91. visidata/loaders/texttables.py +2 -0
  92. visidata/loaders/tsv.py +24 -7
  93. visidata/loaders/unzip_http.py +127 -3
  94. visidata/loaders/vds.py +4 -0
  95. visidata/loaders/vdx.py +1 -1
  96. visidata/loaders/xlsx.py +5 -0
  97. visidata/loaders/xml.py +2 -1
  98. visidata/macros.py +14 -31
  99. visidata/main.py +20 -15
  100. visidata/mainloop.py +17 -6
  101. visidata/man/vd.1 +74 -39
  102. visidata/man/vd.txt +73 -41
  103. visidata/memory.py +16 -5
  104. visidata/menu.py +14 -3
  105. visidata/metasheets.py +5 -6
  106. visidata/modify.py +4 -4
  107. visidata/mouse.py +2 -0
  108. visidata/movement.py +14 -28
  109. visidata/optionssheet.py +3 -5
  110. visidata/path.py +59 -37
  111. visidata/pivot.py +8 -5
  112. visidata/pyobj.py +63 -9
  113. visidata/rename_col.py +18 -1
  114. visidata/save.py +16 -9
  115. visidata/search.py +4 -4
  116. visidata/selection.py +10 -56
  117. visidata/settings.py +37 -35
  118. visidata/sheets.py +189 -118
  119. visidata/shell.py +23 -14
  120. visidata/sidebar.py +71 -16
  121. visidata/sort.py +21 -6
  122. visidata/statusbar.py +42 -5
  123. visidata/stored_list.py +5 -2
  124. visidata/tests/conftest.py +1 -0
  125. visidata/tests/test_commands.py +9 -1
  126. visidata/tests/test_completer.py +18 -0
  127. visidata/tests/test_edittext.py +3 -2
  128. visidata/text_source.py +7 -4
  129. visidata/textsheet.py +20 -6
  130. visidata/themes/ascii8.py +9 -6
  131. visidata/themes/asciimono.py +14 -4
  132. visidata/threads.py +13 -3
  133. visidata/tuiwin.py +5 -1
  134. visidata/type_currency.py +1 -2
  135. visidata/type_date.py +6 -1
  136. visidata/undo.py +10 -13
  137. visidata/utils.py +9 -3
  138. visidata/vdobj.py +21 -1
  139. visidata/wrappers.py +9 -1
  140. {visidata-3.0.1.data → visidata-3.1.data}/data/share/applications/visidata.desktop +2 -2
  141. {visidata-3.0.1.data → visidata-3.1.data}/data/share/man/man1/vd.1 +74 -39
  142. {visidata-3.0.1.data → visidata-3.1.data}/data/share/man/man1/visidata.1 +74 -39
  143. {visidata-3.0.1.dist-info → visidata-3.1.dist-info}/METADATA +33 -5
  144. visidata-3.1.dist-info/RECORD +284 -0
  145. visidata-3.0.1.dist-info/RECORD +0 -258
  146. {visidata-3.0.1.data → visidata-3.1.data}/scripts/vd +0 -0
  147. {visidata-3.0.1.data → visidata-3.1.data}/scripts/vd2to3.vdx +0 -0
  148. {visidata-3.0.1.dist-info → visidata-3.1.dist-info}/LICENSE.gpl3 +0 -0
  149. {visidata-3.0.1.dist-info → visidata-3.1.dist-info}/WHEEL +0 -0
  150. {visidata-3.0.1.dist-info → visidata-3.1.dist-info}/entry_points.txt +0 -0
  151. {visidata-3.0.1.dist-info → visidata-3.1.dist-info}/top_level.txt +0 -0
visidata/mainloop.py CHANGED
@@ -36,6 +36,9 @@ def drawSheet(vd, scr, sheet):
36
36
 
37
37
  sheet.ensureLoaded()
38
38
 
39
+ if not scr:
40
+ return
41
+
39
42
  scr.erase() # clear screen before every re-draw
40
43
  scr.bkgd(' ', colors.color_default.attr)
41
44
 
@@ -162,8 +165,11 @@ def mainloop(vd, scr):
162
165
  numTimeouts = 0
163
166
  prefixWaiting = False
164
167
  vd.scrFull = scr
168
+ if vd.options.disp_expert >= 5:
169
+ vd.disp_help = -1
165
170
 
166
171
  vd.keystrokes = ''
172
+ vd.drawThread = threading.current_thread()
167
173
  while True:
168
174
  if not vd.stackedSheets and vd.currentReplay is None:
169
175
  return
@@ -174,11 +180,13 @@ def mainloop(vd, scr):
174
180
  continue # waiting for replay to push sheet
175
181
 
176
182
  threading.current_thread().sheet = sheet
177
- vd.drawThread = threading.current_thread()
178
183
 
179
184
  vd.setWindows(vd.scrFull)
180
185
 
181
- if not vd.drainPendingKeys(scr) or time.time() - vd._lastDrawTime > vd.min_draw_ms/1000: #1459
186
+ # a newly created sheet needs to be drawn once to set its _scr
187
+ if vd.activeSheet._scr is None or \
188
+ not vd.drainPendingKeys(scr) or \
189
+ time.time() - vd._lastDrawTime > vd.min_draw_ms/1000: #1459
182
190
  vd.draw_all()
183
191
  vd._lastDrawTime = time.time()
184
192
 
@@ -213,10 +221,10 @@ def mainloop(vd, scr):
213
221
  pass
214
222
  elif keystroke == 'Ctrl+Q':
215
223
  return vd.lastErrors and '\n'.join(vd.lastErrors[-1])
216
- elif vd.bindkeys._get(vd.keystrokes):
224
+ elif vd.bindkeys._get(vd.keystrokes) is not None:
217
225
  sheet.execCommand(vd.keystrokes, keystrokes=vd.keystrokes)
218
226
  prefixWaiting = False
219
- elif keystroke in vd.allPrefixes:
227
+ elif vd.keystrokes in vd.allPrefixes:
220
228
  prefixWaiting = True
221
229
  else:
222
230
  vd.status('no command for "%s"' % (vd.keystrokes))
@@ -246,12 +254,15 @@ def mainloop(vd, scr):
246
254
  # no idle redraw unless background threads are running
247
255
  time.sleep(0) # yield to other threads which may not have started yet
248
256
  if vd._nextCommands:
249
- vd.curses_timeout = int(vd.options.replay_wait*1000)
257
+ if vd.options.replay_wait > 0:
258
+ vd.curses_timeout = int(vd.options.replay_wait*1000)
259
+ else:
260
+ vd.curses_timeout = nonidle_timeout
250
261
  elif vd.unfinishedThreads:
251
262
  vd.curses_timeout = nonidle_timeout
252
263
  else:
253
264
  numTimeouts += 1
254
- if vd.timeouts_before_idle >= 0 and numTimeouts > vd.timeouts_before_idle:
265
+ if vd.timeouts_before_idle >= 0 and numTimeouts >= vd.timeouts_before_idle:
255
266
  vd.curses_timeout = -1
256
267
  else:
257
268
  vd.curses_timeout = nonidle_timeout
visidata/man/vd.1 CHANGED
@@ -1,4 +1,4 @@
1
- .Dd January 7, 2024
1
+ .Dd October 13, 2024
2
2
  .Dt vd \&1 "Quick Reference Guide"
3
3
  .Os Linux/MacOS
4
4
  .
@@ -21,6 +21,10 @@
21
21
  .Op Ar options
22
22
  .Op Ar input No ...
23
23
  .
24
+ .Nm visidata
25
+ .Op Ar options
26
+ .Op Ar input No ...
27
+ .
24
28
  .Nm vd
25
29
  .Op Ar options
26
30
  .Cm --play Ar cmdlog
@@ -33,7 +37,7 @@
33
37
  .Nm vd
34
38
  .Op Ar options
35
39
  .Op Ar input No ...
36
- .Cm + Ns Ar toplevel Ns : Ns Ar subsheet Ns : Ns Ar col Ns : Ns Ar row
40
+ .Cm + Ns Ar toplevel Ns : Ns Ar subsheet Ns : Ns Ar row Ns : Ns Ar col
37
41
  .
38
42
  .Sh DESCRIPTION
39
43
  .Nm VisiData No is an easy-to-use multipurpose tool to explore, clean, edit, and restructure data.
@@ -101,7 +105,7 @@ toggle sidebar
101
105
  .No redo the most recent undo ( requires enabled Sy options.undo Ns )
102
106
  .Pp
103
107
  .It Ic "Space" Ar longname
104
- .No open command palette; Sy Enter No to execute top command by its Ar longname
108
+ .No open command palette; execute top command by its Ar longname
105
109
  .El
106
110
  .Ss " Command Palette"
107
111
  .Bl -tag -width XXXXXXXXXXXXXXX -compact -offset XXX
@@ -137,9 +141,9 @@ scroll current row to center of screen
137
141
  jump to previous sheet (swaps with current sheet)
138
142
  .Pp
139
143
  .It Ic " / ?" Ar regex
140
- .No search for Ar regex No forward/backward in current column
144
+ .No search for Ar regex No forward/backward in current column's displayed values
141
145
  .It Ic "g/ g?" Ar regex
142
- .No search for Ar regex No forward/backward over all visible columns
146
+ .No search for Ar regex No forward/backward over all visible columns' displayed values
143
147
  .It Ic "z/ z?" Ar expr
144
148
  .No search by Python Ar expr No forward/backward in current column (with column names as variables)
145
149
  .It Ic " n N"
@@ -236,6 +240,7 @@ open a frozen copy of current sheet with all visible columns evaluated
236
240
  .It Ic "z' gz'"
237
241
  add/reset cache for current/all visible column(s)
238
242
  .Pp
243
+ .It Note that regex operations apply to the displayed value in a cell.
239
244
  .It Ic " \&:" Ar regex
240
245
  .No add new columns from Ar regex No split; number of columns determined by example row at cursor
241
246
  .It Ic " \&;" Ar regex
@@ -875,10 +880,12 @@ show/hide methods and hidden properties
875
880
  .Bl -tag -width XXXXXXXXXXXXXXXXXXXXXXXXXXX -compact
876
881
  .It Cm -P Ns = Ns Ar longname
877
882
  .No preplay Ar longname No before replay or regular launch; limited to Sy Base Sheet No bound commands
878
- .It Cm + Ns Ar toplevel Ns : Ns Ar subsheet Ns : Ns Ar col Ns : Ns Ar row
879
- .No launch vd with Ar subsheet No of Ar toplevel No at top-of-stack, and cursor at Ar col No and Ar row Ns ; all arguments are optional
883
+ .It Cm + Ns Ar toplevel Ns : Ns Ar subsheet Ns : Ns Ar row Ns : Ns Ar col
884
+ .No launch vd with Ar subsheet No of Ar toplevel No at top-of-stack, and cursor at Ar row No and Ar col Ns ; all arguments are optional
880
885
  .It Cm --overwrite Ns = Ns Ar c
881
886
  .No Overwrite with confirmation
887
+ .It Cm --guides
888
+ .No open Guide Index
882
889
  .
883
890
  .Pp
884
891
  .Lo f filetype filetype
@@ -913,14 +920,6 @@ exit on error and display stacktrace
913
920
  enable undo/redo
914
921
  .It Sy --col-cache-size Ns = Ns Ar "int " No "0"
915
922
  max number of cache entries in each cached column
916
- .It Sy --note-pending Ns = Ns Ar "str " No "\[u231B]"
917
- note to display for pending cells
918
- .It Sy --note-format-exc Ns = Ns Ar "str " No "?"
919
- cell note for an exception during formatting
920
- .It Sy --note-getter-exc Ns = Ns Ar "str " No "!"
921
- cell note for an exception during computation
922
- .It Sy --note-type-exc Ns = Ns Ar "str " No "!"
923
- cell note for an exception during type conversion
924
923
  .It Sy --scroll-incr Ns = Ns Ar "int " No "-3"
925
924
  amount to scroll with scrollwheel
926
925
  .It Sy --force-256-colors No " False"
@@ -931,12 +930,12 @@ confirm before quitting modified sheet
931
930
  default column width
932
931
  .It Sy --default-height Ns = Ns Ar "int " No "4"
933
932
  default column height
934
- .It Sy --textwrap-cells Ns = Ns Ar "bool " No "True"
935
- wordwrap text for multiline rows
936
933
  .It Sy --name-joiner Ns = Ns Ar "str " No "_"
937
934
  string to join sheet or column names
938
935
  .It Sy --value-joiner Ns = Ns Ar "str " No " "
939
936
  string to join display values
937
+ .It Sy --max-rows Ns = Ns Ar "int " No "1000000000"
938
+ number of rows to load from source
940
939
  .It Sy --wrap No " False"
941
940
  wrap text to fit window width on TextSheet
942
941
  .It Sy --save-filetype Ns = Ns Ar "str " No "tsv"
@@ -1022,7 +1021,7 @@ source of randomized startup messages
1022
1021
  folder recursion depth on DirSheet
1023
1022
  .It Sy --dir-hidden No " False"
1024
1023
  load hidden files on DirSheet
1025
- .It Sy --config Ns = Ns Ar "Path " No "~/.visidatarc"
1024
+ .It Sy --config Ns = Ns Ar "Path " No "/home/saul/.visidatarc"
1026
1025
  config file to exec in Python
1027
1026
  .It Sy --play Ns = Ns Ar "str " No ""
1028
1027
  file.vdj to replay
@@ -1056,7 +1055,7 @@ device ID associated with matrix login
1056
1055
  client_id for reddit api
1057
1056
  .It Sy --reddit-client-secret Ns = Ns Ar "str " No ""
1058
1057
  client_secret for reddit api
1059
- .It Sy --reddit-user-agent Ns = Ns Ar "str " No "3.0.1"
1058
+ .It Sy --reddit-user-agent Ns = Ns Ar "str " No "3.1dev"
1060
1059
  user_agent for reddit api
1061
1060
  .It Sy --zulip-batch-size Ns = Ns Ar "int " No "-100"
1062
1061
  number of messages to fetch per call (<0 to fetch before anchor)
@@ -1072,8 +1071,12 @@ Email for use with Zulip API key
1072
1071
  dialect passed to csv.reader
1073
1072
  .It Sy --csv-delimiter Ns = Ns Ar "str " No ","
1074
1073
  delimiter passed to csv.reader
1074
+ .It Sy --csv-doublequote Ns = Ns Ar "bool " No "True"
1075
+ quote-doubling setting passed to csv.reader
1075
1076
  .It Sy --csv-quotechar Ns = Ns Ar "str " No """
1076
1077
  quotechar passed to csv.reader
1078
+ .It Sy --csv-quoting Ns = Ns Ar "int " No "0"
1079
+ quoting style passed to csv.reader and csv.writer
1077
1080
  .It Sy --csv-skipinitialspace Ns = Ns Ar "bool " No "True"
1078
1081
  skipinitialspace passed to csv.reader
1079
1082
  .It Sy --csv-escapechar Ns = Ns Ar "NoneType " No "None"
@@ -1095,6 +1098,8 @@ number of rows to check for fixed width columns
1095
1098
  max number of fixed-width columns to create (0 is no max)
1096
1099
  .It Sy --graphviz-edge-labels Ns = Ns Ar "bool " No "True"
1097
1100
  whether to include edge labels on graphviz diagrams
1101
+ .It Sy --grep-base-dir Ns = Ns Ar "NoneType " No "None"
1102
+ base directory for relative paths opened with sysopen-row
1098
1103
  .It Sy --html-title Ns = Ns Ar "str " No "<h2>{sheet.name}</h2>"
1099
1104
  table header when saving to html
1100
1105
  .It Sy --http-max-next Ns = Ns Ar "int " No "0"
@@ -1121,6 +1126,8 @@ show all object versions in a versioned bucket
1121
1126
  sqlite statement to execute after opening a connection
1122
1127
  .It Sy --xlsx-meta-columns No " False"
1123
1128
  include columns for cell objects, font colors, and fill colors
1129
+ .It Sy --xlsx-color-cells Ns = Ns Ar "bool " No "True"
1130
+ color cells based on xlsx source
1124
1131
  .It Sy --xml-parser-huge-tree Ns = Ns Ar "bool " No "True"
1125
1132
  allow very deep trees and very long text content
1126
1133
  .It Sy --plt-marker Ns = Ns Ar "str " No "."
@@ -1186,7 +1193,7 @@ command submenu indicator
1186
1193
  indicator if command pushes sheet onto sheet stack
1187
1194
  .It Sy "disp_menu_input " No "\[u2026]"
1188
1195
  indicator if input required for command
1189
- .It Sy "disp_menu_fmt " No "| VisiData {vd.version} | Alt+H for help menu"
1196
+ .It Sy "disp_menu_fmt " No "| VisiData {vd.version} | {vd.hintStatus}"
1190
1197
  right-side menu format string
1191
1198
  .It Sy "disp_float_fmt " No "{:.02f}"
1192
1199
  default fmtstr to format float values
@@ -1214,7 +1221,15 @@ displayed contents for computation exception
1214
1221
  width to use for unicode chars marked ambiguous
1215
1222
  .It Sy "disp_pending " No ""
1216
1223
  string to display in pending cells
1217
- .It Sy "color_note_pending " No "bold magenta"
1224
+ .It Sy "disp_note_pending " No ":"
1225
+ note to display for pending cells
1226
+ .It Sy "disp_note_fmtexc " No "?"
1227
+ cell note for an exception during formatting
1228
+ .It Sy "disp_note_getexc " No "!"
1229
+ cell note for an exception during computation
1230
+ .It Sy "disp_note_typeexc " No "!"
1231
+ cell note for an exception during type conversion
1232
+ .It Sy "color_note_pending " No "bold green"
1218
1233
  color of note in pending cells
1219
1234
  .It Sy "color_note_type " No "226 yellow"
1220
1235
  color of cell note for non-str types in anytype columns
@@ -1252,19 +1267,19 @@ characters for ascending sort
1252
1267
  characters for descending sort
1253
1268
  .It Sy "color_default " No "white on black"
1254
1269
  the default fg and bg colors
1255
- .It Sy "color_default_hdr " No "bold"
1270
+ .It Sy "color_default_hdr " No "bold white on black"
1256
1271
  color of the column headers
1257
- .It Sy "color_bottom_hdr " No "underline"
1272
+ .It Sy "color_bottom_hdr " No "underline white on black"
1258
1273
  color of the bottom header row
1259
1274
  .It Sy "color_current_row " No "reverse"
1260
1275
  color of the cursor row
1261
- .It Sy "color_current_col " No "bold"
1276
+ .It Sy "color_current_col " No "bold on 232"
1262
1277
  color of the cursor column
1263
1278
  .It Sy "color_current_cell " No ""
1264
1279
  color of current cell, if different from color_current_row+color_current_col
1265
1280
  .It Sy "color_current_hdr " No "bold reverse"
1266
1281
  color of the header for the cursor column
1267
- .It Sy "color_column_sep " No "246 blue"
1282
+ .It Sy "color_column_sep " No "white on black"
1268
1283
  color of column separators
1269
1284
  .It Sy "color_key_col " No "81 cyan"
1270
1285
  color of key columns
@@ -1272,27 +1287,41 @@ color of key columns
1272
1287
  color of hidden columns on metasheets
1273
1288
  .It Sy "color_selected_row " No "215 yellow"
1274
1289
  color of selected rows
1275
- .It Sy "color_clickable " No "underline"
1290
+ .It Sy "color_clickable " No "bold"
1276
1291
  color of internally clickable item
1277
1292
  .It Sy "color_code " No "bold white on 237"
1278
1293
  color of code sample
1279
- .It Sy "color_heading " No "bold 200"
1294
+ .It Sy "color_heading " No "bold black on yellow"
1280
1295
  color of header
1281
1296
  .It Sy "color_guide_unwritten" No "243 on black"
1282
1297
  color of unwritten guides in GuideGuide
1283
- .It Sy "disp_rstatus_fmt " No "{sheet.threadStatus} {sheet.keystrokeStatus} [:longname]{sheet.longname}[/] {sheet.nRows:9d} {sheet.rowtype} {sheet.modifiedStatus}{sheet.selectedStatus}{vd.replayStatus}"
1298
+ .It Sy "disp_wrap_max_lines" No "3"
1299
+ max lines for multiline view
1300
+ .It Sy "disp_wrap_break_long_words" No "False"
1301
+ break words longer than column width in multiline
1302
+ .It Sy "disp_wrap_replace_whitespace" No "False"
1303
+ replace whitespace with spaces in multiline
1304
+ .It Sy "disp_wrap_placeholder" No "\[u2026]"
1305
+ multiline string to indicate truncation
1306
+ .It Sy "disp_multiline_focus" No "True"
1307
+ only multiline cursor row
1308
+ .It Sy "color_aggregator " No "bold 255 white on 234 black"
1309
+ color of aggregator summary on bottom row
1310
+ .It Sy "disp_rstatus_fmt " No "{sheet.threadStatus} {sheet.keystrokeStatus} [:longname_status]{sheet.longname}[/] {sheet.nRows:9d} {sheet.rowtype} {sheet.modifiedStatus}{sheet.selectedStatus}{vd.replayStatus}{vd.sidebarStatus}"
1284
1311
  right-side status format string
1285
- .It Sy "disp_status_fmt " No "[:onclick sheets-stack]{sheet.shortcut}\[u203A] {sheet.name}[/]| "
1286
- status line prefix
1312
+ .It Sy "disp_status_fmt " No "{sheet.sheetlist}| "
1313
+ left-side status format string
1287
1314
  .It Sy "disp_lstatus_max " No "0"
1288
1315
  maximum length of left status line
1289
1316
  .It Sy "disp_status_sep " No "\[u2502]"
1290
1317
  separator between statuses
1291
1318
  .It Sy "color_keystrokes " No "bold white on 237"
1292
1319
  color of input keystrokes
1293
- .It Sy "color_longname " No "bold 52 on 114 green"
1320
+ .It Sy "color_longname_guide" No "237"
1294
1321
  color of command longnames
1295
- .It Sy "color_keys " No "bold"
1322
+ .It Sy "color_longname_status" No "white"
1323
+ color of command longnames
1324
+ .It Sy "color_keys " No "bold reverse"
1296
1325
  color of keystrokes in help
1297
1326
  .It Sy "color_status " No "bold on 238"
1298
1327
  status line color
@@ -1326,6 +1355,8 @@ default fmtstr to format for currency values
1326
1355
  color for negative values in currency displayer
1327
1356
  .It Sy "disp_replay_play " No "\[u25B6]"
1328
1357
  status indicator for active replay
1358
+ .It Sy "disp_replay_record " No "\[u23FA]"
1359
+ status indicator for macro record
1329
1360
  .It Sy "color_status_replay" No "green"
1330
1361
  color of replay status indicator
1331
1362
  .It Sy "disp_histogram " No "\[u25A0]"
@@ -1346,8 +1377,16 @@ color of selected graph points
1346
1377
  color for graph axis labels
1347
1378
  .It Sy "disp_graph_tick_x " No "\[u2575]"
1348
1379
  character for graph x-axis ticks
1349
- .It Sy "disp_help " No "2"
1350
- show help panel during input
1380
+ .It Sy "color_graph_refline" No ""
1381
+ color for graph reference value lines
1382
+ .It Sy "disp_graph_reflines_x_charset" No "\[u258F]\[u2502]\[u2502]\[u2595]"
1383
+ charset to render vertical reference lines on graph
1384
+ .It Sy "disp_graph_reflines_y_charset" No "\[u2594]\[u2500]\[u2500]\[u2581]"
1385
+ charset to render horizontal reference lines on graph
1386
+ .It Sy "disp_graph_multiple_reflines_char" No "\[u2592]"
1387
+ char to render multiple parallel reflines
1388
+ .It Sy "disp_expert " No "0"
1389
+ max level of options and columns to include
1351
1390
  .It Sy "color_add_pending " No "green"
1352
1391
  color for rows pending add
1353
1392
  .It Sy "color_change_pending" No "reverse yellow"
@@ -1356,7 +1395,7 @@ color for cells pending modification
1356
1395
  color for rows pending delete
1357
1396
  .It Sy "disp_sidebar " No "True"
1358
1397
  whether to display sidebar
1359
- .It Sy "disp_sidebar_fmt " No "{guide}"
1398
+ .It Sy "disp_sidebar_fmt " No ""
1360
1399
  format string for default sidebar
1361
1400
  .It Sy "disp_sidebar_width " No "0"
1362
1401
  max width for sidebar
@@ -1392,10 +1431,6 @@ color of active clue
1392
1431
  base color of command palette
1393
1432
  .It Sy "disp_cmdpal_max " No "10"
1394
1433
  max number of suggestions for command palette
1395
- .It Sy "color_shellcmd " No "21 on 114 green"
1396
-
1397
- .It Sy "color_colname " No "underline"
1398
-
1399
1434
  .It Sy "disp_scroll_context" No "0"
1400
1435
  minimum number of lines to keep visible above/below cursor when scrolling
1401
1436
  .It Sy "disp_sparkline " No "\[u2581]\[u2582]\[u2583]\[u2584]\[u2585]\[u2586]\[u2587]"
visidata/man/vd.txt CHANGED
@@ -5,9 +5,10 @@ NAME
5
5
 
6
6
  SYNOPSIS
7
7
  vd [options] [input ...]
8
+ visidata [options] [input ...]
8
9
  vd [options] --play cmdlog [-w waitsecs] [--batch] [-i] [-o output]
9
10
  [field=value]
10
- vd [options] [input ...] +toplevel:subsheet:col:row
11
+ vd [options] [input ...] +toplevel:subsheet:row:col
11
12
 
12
13
  DESCRIPTION
13
14
  VisiData is an easy-to-use multipurpose tool to explore, clean, edit, and
@@ -53,8 +54,8 @@ DESCRIPTION
53
54
  R redo the most recent undo (requires enabled
54
55
  options.undo)
55
56
 
56
- Space longname open command palette; Enter to execute top command by
57
- its longname
57
+ Space longname open command palette; execute top command by its
58
+ longname
58
59
 
59
60
  Command Palette
60
61
  Tab Move to command palette, and cycle through commands
@@ -73,9 +74,10 @@ DESCRIPTION
73
74
 
74
75
  ^^ (Ctrl+^) jump to previous sheet (swaps with current sheet)
75
76
 
76
- / ? regex search for regex forward/backward in current column
77
+ / ? regex search for regex forward/backward in current column's
78
+ displayed values
77
79
  g/ g? regex search for regex forward/backward over all visible
78
- columns
80
+ columns' displayed values
79
81
  z/ z? expr search by Python expr forward/backward in current column
80
82
  (with column names as variables)
81
83
  n N go to next/previous match from last regex search
@@ -143,6 +145,7 @@ DESCRIPTION
143
145
  columns evaluated
144
146
  z' gz' add/reset cache for current/all visible column(s)
145
147
 
148
+ Note that regex operations apply to the displayed value in a cell.
146
149
  : regex add new columns from regex split; number of columns
147
150
  determined by example row at cursor
148
151
  ; regex add new columns from capture groups of regex (also
@@ -563,10 +566,11 @@ COMMANDLINE OPTIONS
563
566
 
564
567
  -P=longname preplay longname before replay or regular
565
568
  launch; limited to Base Sheet bound commands
566
- +toplevel:subsheet:col:row launch vd with subsheet of toplevel at
567
- top-of-stack, and cursor at col and row; all
569
+ +toplevel:subsheet:row:col launch vd with subsheet of toplevel at
570
+ top-of-stack, and cursor at row and col; all
568
571
  arguments are optional
569
572
  --overwrite=c Overwrite with confirmation
573
+ --guides open Guide Index
570
574
 
571
575
  -f, --filetype=filetype tsv set loader to use for
572
576
  filetype instead of file extension
@@ -586,15 +590,6 @@ COMMANDLINE OPTIONS
586
590
  --col-cache-size=int 0 max number of cache en‐
587
591
  tries in each cached col‐
588
592
  umn
589
- --note-pending=str ⌛ note to display for pend‐
590
- ing cells
591
- --note-format-exc=str ? cell note for an excep‐
592
- tion during formatting
593
- --note-getter-exc=str ! cell note for an excep‐
594
- tion during computation
595
- --note-type-exc=str ! cell note for an excep‐
596
- tion during type conver‐
597
- sion
598
593
  --scroll-incr=int -3 amount to scroll with
599
594
  scrollwheel
600
595
  --force-256-colors False use 256 colors even if
@@ -603,12 +598,12 @@ COMMANDLINE OPTIONS
603
598
  modified sheet
604
599
  --default-width=int 20 default column width
605
600
  --default-height=int 4 default column height
606
- --textwrap-cells=bool True wordwrap text for multi‐
607
- line rows
608
601
  --name-joiner=str _ string to join sheet or
609
602
  column names
610
603
  --value-joiner=str string to join display
611
604
  values
605
+ --max-rows=int 1000000000 number of rows to load
606
+ from source
612
607
  --wrap False wrap text to fit window
613
608
  width on TextSheet
614
609
  --save-filetype=str tsv specify default file type
@@ -707,7 +702,7 @@ COMMANDLINE OPTIONS
707
702
  DirSheet
708
703
  --dir-hidden False load hidden files on
709
704
  DirSheet
710
- --config=Path ~/.visidatarc
705
+ --config=Path /home/saul/.visidatarc
711
706
  config file to exec in
712
707
  Python
713
708
  --play=str file.vdj to replay
@@ -744,7 +739,7 @@ COMMANDLINE OPTIONS
744
739
  --reddit-client-id=str client_id for reddit api
745
740
  --reddit-client-secret=str client_secret for reddit
746
741
  api
747
- --reddit-user-agent=str 3.0.1 user_agent for reddit api
742
+ --reddit-user-agent=str 3.1dev user_agent for reddit api
748
743
  --zulip-batch-size=int -100 number of messages to
749
744
  fetch per call (<0 to
750
745
  fetch before anchor)
@@ -760,8 +755,12 @@ COMMANDLINE OPTIONS
760
755
  csv.reader
761
756
  --csv-delimiter=str , delimiter passed to
762
757
  csv.reader
758
+ --csv-doublequote=bool True quote-doubling setting
759
+ passed to csv.reader
763
760
  --csv-quotechar=str " quotechar passed to
764
761
  csv.reader
762
+ --csv-quoting=int 0 quoting style passed to
763
+ csv.reader and csv.writer
765
764
  --csv-skipinitialspace=bool True skipinitialspace passed
766
765
  to csv.reader
767
766
  --csv-escapechar=NoneType None escapechar passed to
@@ -797,6 +796,9 @@ COMMANDLINE OPTIONS
797
796
  --graphviz-edge-labels=bool True whether to include edge
798
797
  labels on graphviz dia‐
799
798
  grams
799
+ --grep-base-dir=NoneType None base directory for rela‐
800
+ tive paths opened with
801
+ sysopen-row
800
802
  --html-title=str <h2>{sheet.name}</h2>
801
803
  table header when saving
802
804
  to html
@@ -831,6 +833,8 @@ COMMANDLINE OPTIONS
831
833
  --xlsx-meta-columns False include columns for cell
832
834
  objects, font colors, and
833
835
  fill colors
836
+ --xlsx-color-cells=bool True color cells based on xlsx
837
+ source
834
838
  --xml-parser-huge-tree=bool True allow very deep trees and
835
839
  very long text content
836
840
  --plt-marker=str . matplotlib.markers
@@ -893,7 +897,7 @@ COMMANDLINE OPTIONS
893
897
  onto sheet stack
894
898
  disp_menu_input … indicator if input required for
895
899
  command
896
- disp_menu_fmt | VisiData {vd.version} | Alt+H for help menu
900
+ disp_menu_fmt | VisiData {vd.version} | {vd.hintStatus}
897
901
  right-side menu format string
898
902
  disp_float_fmt {:.02f} default fmtstr to format float
899
903
  values
@@ -921,7 +925,14 @@ COMMANDLINE OPTIONS
921
925
  marked ambiguous
922
926
  disp_pending string to display in pending
923
927
  cells
924
- color_note_pending bold magenta color of note in pending cells
928
+ disp_note_pending : note to display for pending cells
929
+ disp_note_fmtexc ? cell note for an exception during
930
+ formatting
931
+ disp_note_getexc ! cell note for an exception during
932
+ computation
933
+ disp_note_typeexc ! cell note for an exception during
934
+ type conversion
935
+ color_note_pending bold green color of note in pending cells
925
936
  color_note_type 226 yellow color of cell note for non-str
926
937
  types in anytype columns
927
938
  color_note_row 220 yellow color of row note on left edge
@@ -942,41 +953,54 @@ COMMANDLINE OPTIONS
942
953
  disp_sort_asc ↑↟⇞⇡⇧⇑ characters for ascending sort
943
954
  disp_sort_desc ↓↡⇟⇣⇩⇓ characters for descending sort
944
955
  color_default white on black the default fg and bg colors
945
- color_default_hdr bold color of the column headers
946
- color_bottom_hdr underline color of the bottom header row
956
+ color_default_hdr bold white on black
957
+ color of the column headers
958
+ color_bottom_hdr underline white on black
959
+ color of the bottom header row
947
960
  color_current_row reverse color of the cursor row
948
- color_current_col bold color of the cursor column
961
+ color_current_col bold on 232 color of the cursor column
949
962
  color_current_cell color of current cell, if differ‐
950
963
  ent from color_cur‐
951
964
  rent_row+color_current_col
952
965
  color_current_hdr bold reverse color of the header for the cur‐
953
966
  sor column
954
- color_column_sep 246 blue color of column separators
967
+ color_column_sep white on black color of column separators
955
968
  color_key_col 81 cyan color of key columns
956
969
  color_hidden_col 8 color of hidden columns on
957
970
  metasheets
958
971
  color_selected_row 215 yellow color of selected rows
959
- color_clickable underline color of internally clickable
972
+ color_clickable bold color of internally clickable
960
973
  item
961
974
  color_code bold white on 237 color of code sample
962
- color_heading bold 200 color of header
975
+ color_heading bold black on yellow
976
+ color of header
963
977
  color_guide_unwritten 243 on black color of unwritten guides in
964
978
  GuideGuide
979
+ disp_wrap_max_lines 3 max lines for multiline view
980
+ disp_wrap_break_long_words False break words longer than column
981
+ width in multiline
982
+ disp_wrap_replace_whitespace False replace whitespace with spaces in
983
+ multiline
984
+ disp_wrap_placeholder … multiline string to indicate
985
+ truncation
986
+ disp_multiline_focus True only multiline cursor row
987
+ color_aggregator bold 255 white on 234 black
988
+ color of aggregator summary on
989
+ bottom row
965
990
  disp_rstatus_fmt {sheet.threadStatus} {sheet.keystrokeStatus}
966
- [:longname]{sheet.longname}[/]
991
+ [:longname_status]{sheet.longname}[/]
967
992
  {sheet.nRows:9d} {sheet.rowtype}
968
- {sheet.modifiedStatus}{sheet.selectedStatus}{vd.replayStatus}
993
+ {sheet.modifiedStatus}{sheet.selectedStatus}{vd.replayStatus}{vd.sidebarStatus}
969
994
  right-side status format string
970
- disp_status_fmt [:onclick sheets-stack]{sheet.shortcut}
971
- {sheet.name}[/]|
972
- status line prefix
995
+ disp_status_fmt {sheet.sheetlist}|
996
+ left-side status format string
973
997
  disp_lstatus_max 0 maximum length of left status
974
998
  line
975
999
  disp_status_sep │ separator between statuses
976
1000
  color_keystrokes bold white on 237 color of input keystrokes
977
- color_longname bold 52 on 114 green
978
- color of command longnames
979
- color_keys bold color of keystrokes in help
1001
+ color_longname_guide 237 color of command longnames
1002
+ color_longname_status white color of command longnames
1003
+ color_keys bold reverse color of keystrokes in help
980
1004
  color_status bold on 238 status line color
981
1005
  color_error 202 1 error message color
982
1006
  color_warning 166 15 warning message color
@@ -1001,6 +1025,7 @@ COMMANDLINE OPTIONS
1001
1025
  rency displayer
1002
1026
  disp_replay_play ▶ status indicator for active re‐
1003
1027
  play
1028
+ disp_replay_record ⏺ status indicator for macro record
1004
1029
  color_status_replay green color of replay status indicator
1005
1030
  disp_histogram ■ histogram element character
1006
1031
  disp_graph_labels True show axes and legend on graph
@@ -1017,13 +1042,22 @@ COMMANDLINE OPTIONS
1017
1042
  color_graph_selected bold color of selected graph points
1018
1043
  color_graph_axis bold color for graph axis labels
1019
1044
  disp_graph_tick_x ╵ character for graph x-axis ticks
1020
- disp_help 2 show help panel during input
1045
+ color_graph_refline color for graph reference value
1046
+ lines
1047
+ disp_graph_reflines_x_charset ▏││▕ charset to render vertical refer‐
1048
+ ence lines on graph
1049
+ disp_graph_reflines_y_charset ▔──▁ charset to render horizontal ref‐
1050
+ erence lines on graph
1051
+ disp_graph_multiple_reflines_char ▒ char to render multiple parallel
1052
+ reflines
1053
+ disp_expert 0 max level of options and columns
1054
+ to include
1021
1055
  color_add_pending green color for rows pending add
1022
1056
  color_change_pending reverse yellow color for cells pending modifica‐
1023
1057
  tion
1024
1058
  color_delete_pending red color for rows pending delete
1025
1059
  disp_sidebar True whether to display sidebar
1026
- disp_sidebar_fmt {guide} format string for default sidebar
1060
+ disp_sidebar_fmt format string for default sidebar
1027
1061
  disp_sidebar_width 0 max width for sidebar
1028
1062
  disp_sidebar_height 0 max height for sidebar
1029
1063
  color_sidebar black on 114 blue base color of sidebar
@@ -1045,8 +1079,6 @@ COMMANDLINE OPTIONS
1045
1079
  color_cmdpalette black on 72 base color of command palette
1046
1080
  disp_cmdpal_max 10 max number of suggestions for
1047
1081
  command palette
1048
- color_shellcmd 21 on 114 green
1049
- color_colname underline
1050
1082
  disp_scroll_context 0 minimum number of lines to keep
1051
1083
  visible above/below cursor when
1052
1084
  scrolling
@@ -1157,4 +1189,4 @@ SUPPORTED SOURCES
1157
1189
  AUTHOR
1158
1190
  VisiData was made by Saul Pwanson <vd@saul.pw>.
1159
1191
 
1160
- Linux/MacOS January 7, 2024 Linux/MacOS
1192
+ Linux/MacOS October 13, 2024 Linux/MacOS