A curses command-line CSV and list (tabular data) viewer
Project description
Tabview
This project is functional but future development will be sporadic and limited. For a more fully featured CSV viewer/spreadsheet app check out the Visidata project.
View a CSV file in a spreadsheet-like display.
Posted by Scott Hansen <firecat4153@gmail.com>
Original code forked from: http://www.amk.ca/files/simple/tabview.txt
Contributed by A.M. Kuchling <amk@amk.ca>
Other Contributors:
Matus Gura <matus.gura@gmail.com>
Nathan Typanski <ntypanski@gmail.com>
Sébastien Celles <s.celles@gmail.com>
Yuri D’Elia <wavexx@thregr.org>
The highlighted position is shown in the top-left corner of the screen; next to it are shown the contents of that cell.
Features:
Python 3.4+
Spreadsheet-like view for easily visualizing tabular data
Vim-like navigation (h,j,k,l, g(top), G(bottom), 12G goto line 12, m - mark, ‘ - goto mark, etc.)
Toggle persistent header row
Sort ascending or descending by any column. Dynamically change column width and gap
Sort in ‘natural order’ to improve numeric sorting
Full-text incremental search, n and p to cycle between search results
‘Enter’ to view the full cell contents
Yank cell contents to the clipboard
File can be reloaded in-place if the data changes.
F1 or ? for keybindings
Can also use from python command line to visualize any tabular data (e.g. list-of-lists)
See the screenshots directory for some pictures.
Requires:
Python 3.4+
Xsel or xclip (Optional - only required for ‘yank’ to clipboard)
Installation:
pip install tabview OR
# python setup.py install OR
$ python setup.py install --user OR
Usage:
From command line:
tabview <filename> tabview <filename> --start_pos 6,5 tabview <filename> +6:5 (equivalent to previous usage) tabview <filename> --encoding iso8859-1 +6:
From python command line to view an object
import tabview as t a = [["a","b","c"], ["d","e","f"]] t.view(a)
From python command line to view a file
import tabview as t t.view(<filename>, start_pos=(60,40))
Using as the pager for MySQL. Set these options in ~/.my.cnf:
pager=tabview -d '\t' --quoting QUOTE_NONE - silent
Tests:
python tests/test_tabview.py
Keybindings:
F1 or ? |
Show this list of keybindings |
Cursor keys or h,j,k,l |
Move the highlighted cell, scrolling if required. |
Q or q |
Quit |
Home, ^, Ctrl-a |
Move to the start of this line |
End, $, Ctrl-e |
Move to the end of this line |
[num]| |
Goto column <num>, or first column if num not given |
PgUp/PgDn or J/K |
Move a page up or down |
H,L |
Page left or right |
g |
Goto top of current column |
[num]G |
Goto line <num> or bottom of current column if num not given |
Ctrl-g |
Show file/data information |
Insert or m |
Memorize this position |
Delete or ‘ |
Return to memorized position (if any) |
Enter |
View full cell contents in pop-up window. |
/ |
Search |
n |
Next search result |
p |
Previous search result |
t |
Toggle fixed header row |
< > |
Decrease/Increase column width (all columns) |
, . |
Decrease/Increase column width (current column) |
- + |
Decrease/Increase column gap |
s |
Sort the table by the current column (ascending) |
S |
Sort the table by the current column (descending) |
a |
‘Natural Sort’ the table (ascending) |
A |
‘Natural Sort’ the table (descending) |
# |
Sort numerically by the current column (ascending) |
@ |
Sort numerically by the current column (descending) |
r |
Reload file/data. Also resets sort order |
y |
Yank cell contents to the clipboard (requires xsel or xclip) |
[num]c |
Toggle variable column width mode (mode/max), or set width to [num] |
[num]C |
Maximize current column, or set width to [num] |
[num][ |
Skip to (nth) change in row value (backward) |
[num]] |
Skip to (nth) change in row value (forward) |
[num]{ |
Skip to (nth) change in column value (backward) |
[num]} |
Skip to (nth) change in column value (forward) |
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.