Skip to content

Commit ad02a19

Browse files
authored
Merge pull request #948 from saulpw/develop
VisiData v2.4
2 parents 4e6fcd6 + 604250d commit ad02a19

31 files changed

+295
-108
lines changed

CHANGELOG.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,33 @@
11
# VisiData version history
22

3+
# v2.4 (2021-04-11)
4+
5+
- [splitwindow] stabilize sheet stack associations
6+
- `Shift+Z` pushes 'under sheet' (if any) onto other stack
7+
- `Shift+Z` does not swap panes anymore
8+
- `g Tab` swaps panes
9+
- `options.disp_splitwin_pct` is always not sheet-specific
10+
11+
- [status] show nSelectedRows on rstatus
12+
13+
- [color] remove `options.use_default_colors` (thanks @lxcode #939)
14+
- `options.color_default` can now have both fg and bg
15+
- other color options which do not specify fg or bg will use the missing component from `color_default`
16+
- to use terminal default colors, set `options.color_default=""`
17+
18+
## Bugfixes
19+
20+
- [loaders gzip] fix progress bar when opening gzip (thanks @geekscrapy #925)
21+
- [loaders http] fix loading files from url without specifying filetype
22+
- [loaders sqlite] use `TABLE_XINFO` for hidden/virtual columns (thanks @dotcs #945)
23+
- [loaders sqlite] perf improvement: do not pre-count rows (required full table scan)
24+
- [loaders vds] save typed values instead of formatted display values (thanks @frosencrantz #885)
25+
- [loaders xlsx] stringify "header" row values for column names (thanks @davidwales #921)
26+
- [pyobj-show-hidden] grab visibility lvl from sheet specific option (thanks @frosencrantz #947)
27+
- [splitwin] prevent flickering-on-full-window
28+
- [splitwin] if top sheet quit, keep bottom sheet in bottom pane
29+
- [splitwin] full-screen/splitwin close all sheets should be part of the same stack
30+
331
# v2.3 (2021-04-03)
432

533
## Features

Dockerfile.alpine

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
FROM python:3.8-alpine
2+
3+
RUN pip install requests python-dateutil wcwidth
4+
5+
RUN mkdir -p /opt/visidata
6+
WORKDIR /opt/visidata
7+
COPY . ./
8+
RUN sh -c 'yes | pip install -vvv .'
9+
10+
ENV TERM="xterm-256color"
11+
ENTRYPOINT bin/vd

Dockerfile.darkdraw.alpine

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
FROM visidata
2+
3+
RUN apk add git
4+
RUN pip install git+https://github.com/devottys/darkdraw.git@master
5+
RUN sh -c "echo >>~/.visidatarc import darkdraw"
6+
7+
ENV TERM="xterm-256color"
8+
ENTRYPOINT ["/opt/visidata/bin/vd", "-f", "ddw"]

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
# VisiData v2.3 [![twitter @VisiData][1.1]][1] [![CircleCI](https://circleci.com/gh/saulpw/visidata/tree/stable.svg?style=svg)](https://circleci.com/gh/saulpw/visidata/tree/stable) [![Gitpod ready-to-code](https://img.shields.io/badge/Gitpod-ready--to--code-blue?logo=gitpod)](https://gitpod.io/#https://github.com/saulpw/visidata)
2+
# VisiData v2.4 [![twitter @VisiData][1.1]][1] [![CircleCI](https://circleci.com/gh/saulpw/visidata/tree/stable.svg?style=svg)](https://circleci.com/gh/saulpw/visidata/tree/stable) [![Gitpod ready-to-code](https://img.shields.io/badge/Gitpod-ready--to--code-blue?logo=gitpod)](https://gitpod.io/#https://github.com/saulpw/visidata)
33

44
A terminal interface for exploring and arranging tabular data.
55

dev/build-container

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
#!/usr/bin/env sh
2+
3+
set -u
4+
5+
cd "$(git rev-parse --show-toplevel)" # begin in project root
6+
docker build -f Dockerfile.alpine -t visidata .
7+
docker build -f Dockerfile.darkdraw.alpine -t darkdraw .

dev/checklists/manual-tests.md

Lines changed: 38 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,44 @@
5757
14. Testing the starting position syntax
5858
15. Test loading url
5959
16. Split window
60+
- make sure that if you exit split window, all the sheets from both panes can be accessible on the resulting stack
61+
- test 1
62+
- open 2 files
63+
- Z
64+
- first window should be active
65+
- Tab between
66+
- close top one, then redo and test closing bottom one
67+
- bug?
68+
- does not fullsize
69+
- when top pane is quit, bottom pane is moved to the top
70+
- test 2
71+
- open 2 files
72+
- Z
73+
- open columns sheet in one
74+
- Z
75+
- inspect sheet stack
76+
- columns sheet should remain where it is, and the source sheet below gets moved to the top of the other window
77+
- redo with opening the columns sheet on the other
78+
- bug
79+
- when Shift+Z is done on bottom pane, its second sheet becomes the second sheet of the top stack, isntead of the first sheet of the top stack
80+
- test 3
81+
- Shift+Z with only one file
82+
- Shift+Z with two panes, each pane's stack only has one file
6083
- gZ
84+
- test both panes
85+
- move around, should be no flickering
86+
- press Z again
87+
- test both panes
6188
- zZ
62-
- Z
63-
- various active panes
89+
- should change window size, without changing anything else
90+
- test for both panes
91+
- test negative and positive
92+
- bug?
93+
- negative switches the windows they belong to
94+
- gTab
95+
- should window swap
96+
- test both panes
97+
- bug?
98+
- if the second window is a smaller size, should it orient around the cursor position
6499
- using cursor in active pane
100+
- test both panes

dev/debian/changelog

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,15 @@
1+
visidata (2.3-1) unstable; urgency=low
2+
3+
* Update package to 2.3
4+
5+
-- Anja Boskovic <[email protected]> Sun, 04 Apr 2021 18:08:17 -0700
6+
7+
visidata (2.2.1-1) unstable; urgency=low
8+
9+
* Update package to 2.2.1
10+
11+
-- Anja Boskovic <[email protected]> Sun, 07 Feb 2021 22:19:38 -0800
12+
113
visidata (2.2-1) unstable; urgency=low
214

315
* Update package to 2.2

dev/debian/compat

Lines changed: 0 additions & 1 deletion
This file was deleted.

docs/split.md

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# Viewing two sheets simultaneously
2+
3+
VisiData supports the viewing of two sheets simultaneously with a feature called split screen.
4+
5+
## Entering split screen mode
6+
7+
Keystroke(s) Action
8+
------------ ------
9+
`Shift+Z` split screen in half, placing second sheet on stack visibly in the second pane
10+
`z Shift+Z` *n* split screen, setting the height of the second screen to *n*
11+
12+
13+
When there is a single pane, all currently-open sheets are situated within the same sheets stack. The more recent that sheet was viewed, the higher it is in the [stack](https://jsvine.github.io/intro-to-visidata/basics/understanding-sheets/#how-to-use-the-sheets-sheet).
14+
15+
Split-pane opens a second window, and creates a second stack for it. This keeps the sheet stably within a specific window.
16+
17+
For instance, pressing `Shift+C` on the [sample.tsv]() will give us a stack with two columns, the sample **Sheet** and its **Columns Sheet**.
18+
19+
![]
20+
21+
Pressing `Shift+Z` will now give us a view of them both, with the sample **Sheet** moved to the second window.
22+
23+
![]
24+
25+
## Split screen mode specific commands
26+
27+
While in split screen mode, you can move between windows, adjust the sheets that appear in the current window, and full-screen the current pane.
28+
29+
Keystroke(s) Action
30+
------------ ------
31+
`z Shift+Z` *n* adjust the height of the second window to *n*
32+
`g Shift+Z` full screen the current window
33+
`Tab` make the other window the active window
34+
`Ctrl+^` swap top two sheets in stack in current window, second sheet in stack is now visible
35+
`g Ctrl+^` cycle through sheets in stack in current window
36+
37+
For instance, we can use `Tab` to make the sample **Sheet** the active window.
38+
39+
![]
40+
41+
Moving around it, we can see the **Columns Sheet** in the top window continuing to be updated.
42+
43+
We can press `Shift+F` on the **Item** column to view its [Frequency Table]().
44+
45+
Now, the visible sheet of the second window has changed, while the visible sheet on the top window has stayed the same.
46+
47+
![]
48+
49+
We can use `^^`, so that sample **Sheet** is once again visible, and full-screen it with `g Shift+Z`, effectively leaving split screen mode.
50+
51+
![]

plugins/plugins.jsonl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
{"name": "rownum", "description": "add column of original row ordering", "maintainer": "Saul Pwanson @saulpw", "latest_release": "2019-11-07", "url": "https://raw.githubusercontent.com/saulpw/visidata/dd3aaa4a01e5116c8cd25a30a36bf39756a719b6/plugins/rownum.py", "latest_ver": "0.9", "visidata_ver": "2.0", "pydeps": "", "vdplugindeps": "", "sha256": "41dd84ce3b62504e9c7f40e3ace2285330431d6b46f2f17498ee7e00cb9d8907"}
77
{"name": "vmailcap", "description": "add mailcap-view(-selected) commands to DirSheet", "maintainer": "Saul Pwanson @saulpw", "latest_release": "2020-10-06", "url": "https://raw.githubusercontent.com/saulpw/visidata/0d8af5a226818aa2f99a2f74e08543152b22a36d/plugins/vmailcap.py", "latest_ver": "0.9", "visidata_ver": "2.0", "pydeps": "", "vdplugindeps": "", "sha256": "b8aa66821dfa38107ee45fe49a5262e766cc23a0ff362ce5aea5aa6e9b8e6fb0"}
88
{"name": "vmutagen", "description": "add mp3 metadata columns to DirSheet", "maintainer": "Saul Pwanson @saulpw", "latest_release": "2019-09-25", "url": "https://raw.githubusercontent.com/saulpw/visidata/v2.-2/plugins/vmutagen.py", "latest_ver": "0.1", "visidata_ver": "2.0", "pydeps": "mutagen", "vdplugindeps": "", "sha256": "de9429e6de46d130f1149d2d8834d8b3bbb55e523acefd735bf101384ebfab07"}
9-
{"name": "vds3", "description": "add support for Amazon S3 paths", "maintainer": "AJ Kerrigan @ajkerrigan", "latest_release": "2020-10-10", "url": "https://raw.githubusercontent.com/ajkerrigan/visidata-plugins/vds3-0.5/plugins/vds3.py", "latest_ver": "0.5", "visidata_ver": "2.0", "pydeps": "s3fs", "vdplugindeps": "", "sha256": "294eb799aefcd713877e2c2402b3fdd5922fb3488a4e6326907502a98fb03551"}
9+
{"name": "vds3", "description": "add support for Amazon S3 paths", "maintainer": "AJ Kerrigan @ajkerrigan", "latest_release": "2021-04-08", "url": "https://raw.githubusercontent.com/ajkerrigan/visidata-plugins/vds3-0.6/plugins/vds3.py", "latest_ver": "0.6", "visidata_ver": "2.0", "pydeps": "s3fs", "vdplugindeps": "", "sha256": "0c8f48880b67e8ec33baa84a686d62f198d251b760c71e170ae92f068b778cbf"}
1010
{"name": "genericSQL", "description": "add loaders for SQL databases (Oracle, MySQL)", "maintainer": "Andrew Swanson @aswan89", "latest_release": "2020-04-15", "url": "https://raw.githubusercontent.com/aswan89/visidata_plugin_genericSQL/1.0.0/generic_sql.py", "latest_ver": "1.0.0", "visidata_ver": "2.-3", "pydeps": "sqlalchemy cx_oracle mysqlclient pyodbc", "vdplugindeps": "", "sha256": "71bbaabaa4ffb973ef7745dc3eadca108b34a7e0f0bf6cf6631eca3fa4532513"}
1111
{"name": "diff", "description": "adds command to create diff sheets", "maintainer": "Anja Kefala @anjakefala", "latest_release": "2020-10-09", "url": "https://raw.githubusercontent.com/saulpw/visidata/492d558ff4aba55a192965a27ae6499f8d219072/plugins/diff.py", "latest_ver": "0.9", "visidata_ver": "2.0", "sha256": "0085bf8afdc9abf74b7dd52c251f7b7f7befc507aae262bbb656c2ab7379ddd1"}
1212
{"name": "marks", "description": "adds commands for marking selected rows, and selecting + viewing marked rows", "maintainer": "Saul Pwanson @saulpw", "latest_release": "2020-10-09", "url": "https://raw.githubusercontent.com/saulpw/visidata/54e49feee97a607cce5355bf0e3a79b2466c3d8a/plugins/marks.py", "latest_ver": "0.1", "visidata_ver": "2.0", "sha256": "f15977f327ccc387be208922b66afe4b65666912e8066d02352c53b1aaff941f"}
1313
{"name": "conll", "description": "CoNLL data loader", "maintainer": "Paul McCann <[email protected]>", "latest_release": "2020-12-07", "url": "https://raw.githubusercontent.com/polm/visidata-conll/1bc43a825b329c833ff3f9eb8377d850d58ec4cd/conll.py", "latest_ver": "v0.1.1", "visidata_ver": "v2.1", "pydeps": "pyconll", "sha256": "7a89537e1ad173d9cf8ec934cb81836be2e4ddcdc06c7632af92e6754594285c"}
14-
{"name": "darkdraw", "description": "textart and animation for the terminal, in the terminal", "maintainer": "devottys @devottys", "latest_release": "2021-04-04", "url": "git+https://github.com/devottys/darkdraw.git@master", "latest_ver": "0.2", "visidata_ver": "v2.3"}
14+
{"name": "darkdraw", "description": "textart and animation for the terminal, in the terminal", "maintainer": "devottys @devottys", "latest_release": "2021-04-04", "url": "git+https://github.com/devottys/darkdraw.git@v0.2", "latest_ver": "0.2", "visidata_ver": "v2.3"}

0 commit comments

Comments
 (0)