skip to navigation
skip to content

tabview 1.4.3

A curses command-line CSV and list (tabular data) viewer


View a CSV file in a spreadsheet-like display.

Posted by Scott Hansen <>

Original code forked from:

Contributed by A.M. Kuchling <>

Other Contributors:

The highlighted position is shown in the top-left corner of the screen; next to it are shown the contents of that cell.


  • Python 2.7+ and 3.x
  • 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 2.7+ or 3.x
  • Xsel or xclip (Optional - only required for ‘yank’ to clipboard)


  • pip install tabview OR
  • # python install OR
  • $ python install --user OR
  • 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"]]
  • 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 -


  • python tests/


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)
File Type Py Version Uploaded on Size
tabview-1.4.3-py2.py3-none-any.whl (md5, pgp) Python Wheel py2.py3 2017-11-14 26KB
tabview-1.4.3.tar.gz (md5, pgp) Source 2017-11-14 53KB