A command line ebook reader
I was casting around for a replacement for the excellent Tofu screen text reader for Mac, due to some encoding issues. Always wont to explore the command-line options, I turned first to the ubiquitous less pager, available on pretty much every unix-alike system out there.
The only real drawback to less is its apparent inability to wrap long lines at spaces rather than chopping words in the middle and sans hyphenation. This isn't a problem on hard-return files like a Project Gutenberg ebook, but makes for difficult reading otherwise. (The opposite is the case for Tofu, which requires a bit of manual column widening to compensate for the hard returns.)
Doing a bit of poking around, I re-discovered the also-ubiquitous fmt command, which does word wrapping to a fare-thee-well, though doesn't do paging.
Combining the two commands gives the best of both in classic Unix fashion:
fmt 1911EthanFrome.txt | less
You can also use options to enhance the experience. less -m will give you a prompt showing how far along you are in the file; see man less for others.
The pager recognizes vim movement keys, which I love. Plus you can hit the v key at any time to drop into vim, edit the file, and then return to less. Spiffy.
Of course, you could just use vim (or your favorite text editor), but I like the simplicity without the overhead. Unlike other options, less doesn't read the entire file into memory before displaying it, a definite advantage on big documents.
Another Tip: If you're in a Mac Terminal window, right click on a word or phrase to search for it in Google or Dictionary.
Bonus tangential tip: if you don't care about downloading the text files but want to stick to reading Project Gutenberg files in the terminal, why not use lynx or ELinks?

Post new comment