Tidy Viewer

Dev tools

csv pretty printer

SHOW HN2021

Legend

Tidy Viewer

a cross-platform CSV pretty printer for viewer enjoyment

github.com

#csv viewer#terminal csv#pretty print csv#command line csv

392points
136comments
#80of 2,533 in 2021
Top 4%of 2021 by points

How HN took it

MixedNo clear lean

12 positive, 32 neutral or asking, 3 mixed, 19 critical, out of 66 comments about the project. Thread score -0.12.

Design: 2 for, 9 againstIdea: 3 for, 4 againstExecution: 1 for, 4 againstPerformance: 1 for, 2 against

The thread, comment by comment

Each row is a top-level comment and its replies, in HN's order. Select a cell to open that comment on HN.

positive neutral or mixed critical about another commenter or something else the maker

What HN said

What people liked

  • Pretty output and handy for quick CSV viewing

    From 3 comments
    • Brings a tear to my eye. Everything else I've used is so heavy-handed, I just wanted the jq of CSV's
      frankfrank13 on HN
    • This is beautiful. Perl could do this, but I have to think about it every time. Often, I don't want to think.
      watersb on HN
    • Very handy thanks for sharing.
      xtat on HN
  • Fast on large files

    From 2 comments
    • > these design choices seem to limit its use to relatively small files 1. As a rule-of-thumb, I have been working on functionality before optimization. That said, `tv` is really…
      flusteredBias on HN
    • I love visidata! But when I want to just glance at a csv file I reach for tv (I used to use `column` which is more of a tv competitor than visidata). This is for a couple…
      flusteredBias on HN

Objections

  • Cannot take a file path argument; requires cat or redirection

    From 4 comments
    • I think it's a great first effort, but there are a number of possible improvements to do. The most obvious one would be to support passing the file as an argument instead of…
      mileza on HN
    • I think it’s a bad idea to go against half a century of conventions without good reason. It’s very surprising to see a tool that only works as a filter, and doesn’t take file…
      Someone on HN
    • This is quite nice, but I don't like how it cuts off the output (instead of making it scrollable). Also, why require the use of `cat`? Accepting a filename so I can do `tv…
      stavros on HN
    • Hey, great start. I spend half my day in CSVs and I am definitely your target audience. Most of the time I use bat, visidata or tabview. In many ways tabview is the best, though…
      gurgeous on HN
  • Output is cut off instead of scrollable

    From 2 comments
    • This is quite nice, but I don't like how it cuts off the output (instead of making it scrollable). Also, why require the use of `cat`? Accepting a filename so I can do `tv…
      stavros on HN
    • Hey, great start. I spend half my day in CSVs and I am definitely your target audience. Most of the time I use bat, visidata or tabview. In many ways tabview is the best, though…
      gurgeous on HN
  • Loads whole file into memory

    From 1 comment
    • Some (most?) tools that output data in columns and fit each one to the largest value in that column need to scan the whole file as a first pass just to start displaying data. Not…
      thamer on HN
  • Prebuilt binaries and install needed newer libc

    From 2 comments
    • Demo looks great, alas the prebuilt binaries don't work ``` $ wget https://github.com/alexhallam/tv/releases/download/0.0.10/tidy-viewer --2021-09-27 16:47:43--…
      iso1210 on HN
    • Does it really need libc6 >= 2.31? Having problems installing it on Ubuntu 16.04 LTS because of that dependency.
      mejari on HN

Requests

  • Accept file path as argument

    From 3 comments
    • I think it's a great first effort, but there are a number of possible improvements to do. The most obvious one would be to support passing the file as an argument instead of…
      mileza on HN
    • This is quite nice, but I don't like how it cuts off the output (instead of making it scrollable). Also, why require the use of `cat`? Accepting a filename so I can do `tv…
      stavros on HN
    • Hey, great start. I spend half my day in CSVs and I am definitely your target audience. Most of the time I use bat, visidata or tabview. In many ways tabview is the best, though…
      gurgeous on HN
  • Add scrolling, horizontal and vertical

    From 2 comments
    • Hey, great start. I spend half my day in CSVs and I am definitely your target audience. Most of the time I use bat, visidata or tabview. In many ways tabview is the best, though…
      gurgeous on HN
    • Very nice! How does it handle CSVs that are wider or longer than the terminal? How does it deal with columns that are exceptionally long, or multiline? Often when working with…
      dotancohen on HN
  • Add a space after the prompt

    From 2 comments
    • Cool project (and written in my favourite language), but I really hate how there's no space at the end of your prompt.
      GrayShade on HN
    • It's very weird for a project made to "maximize viewer enjoyment" to not put a space after the prompt. The one saved character on the line is definitely not worth the illegible…
      TacticalCoder on HN
  • Support older Rust versions

    From 1 comment
    • First of all - kudos on tackling this task - it is indeed very annoying to get CSVs to render nicely on a terminal. > How does tidy-viewer compare with csvlook? The most…
      flusteredBias on HN

Questions

  • How does it handle wide or long CSVs and multiline cells?

    From 1 comment
    • Very nice! How does it handle CSVs that are wider or longer than the terminal? How does it deal with columns that are exceptionally long, or multiline? Often when working with…
      dotancohen on HN
  • How does it handle quoted fields and escaped characters?

    From 1 comment
    • This looks great. How well does it handle the edge cases of CSV, like escaped commas, quoted text, escaped quotes, and all that fun, fun stuff?
      tambourine_man on HN
  • What is the difference from xsv, column, or visidata?

    From 3 comments
    • What is the value-add when compared to using `xsv` to pretty print? Is it only the fact that it highlights NA values?
      davidatbu on HN
    • This is kinda cool, but why not just use column? The video of catting into tv is equivalent to: ``` column -s, -t FILE ```
      sigg3 on HN
    • Why not visidata? https://www.visidata.org/ https://www.youtube.com/watch?v=N1CBDTgGtOU (It does much, much more than pretty printing, but no reason you can't use it for that.)
      rlue on HN

Alternatives named

  • column

    From 1 comment
    • This is kinda cool, but why not just use column? The video of catting into tv is equivalent to: ``` column -s, -t FILE ```
      sigg3 on HN
  • xsv

    From 2 comments
    • XSV [0] can also pretty-print (minus the colors), but that's just the tip of the iceberg as far as what it can do. It's very handle for quick statistical analysis of CSV input.…
      ComputerGuru on HN
    • What is the value-add when compared to using `xsv` to pretty print? Is it only the fact that it highlights NA values?
      davidatbu on HN
  • visidata

    From 1 comment
    • Why not visidata? https://www.visidata.org/ https://www.youtube.com/watch?v=N1CBDTgGtOU (It does much, much more than pretty printing, but no reason you can't use it for that.)
      rlue on HN
  • csvkit csvlook

    From 2 comments
    • csvkit’s csvlook works similarly but outputs a markdown table.
      timwis on HN
    • First of all - kudos on tackling this task - it is indeed very annoying to get CSVs to render nicely on a terminal. > How does tidy-viewer compare with csvlook? The most…
      flusteredBias on HN
  • PowerShell Format-Table

    From 1 comment
    • Wanted to mention that Windows PowerShell supports pretty CSV printing out of the box, like so ``` Import-Csv .\Levels.csv | Format-Table Count Level elevation Level name Name…
      claimred on HN

Category, keywords, summaries and labels on this page were made by AI (Thread Reader v2) and not checked by hand. Each point links to the comments it came from.

Add a badge to your READMEShown on HackerShow
[![Shown on HackerShow](https://hackershow.org/badge.svg)](https://hackershow.org/show/28670252)