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 <[email protected]>
Original code forked from: http://www.amk.ca/files/simple/tabview.txt
Contributed by A.M. Kuchling <[email protected]>
Other Contributors:
- Matus Gura <[email protected]>
- Nathan Typanski <[email protected]>
- Sébastien Celles <[email protected]>
- Yuri D'Elia <[email protected]>
The highlighted position is shown in the top-left corner of the screen; next to it are shown the contents of that cell.
- 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.
- Python 3.4+
- Xsel or xclip (Optional - only required for 'yank' to clipboard)
pip install tabviewOR# python setup.py installOR$ python setup.py install --userOR- Archlinux AUR package
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
python tests/test_tabview.py
| 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) |