----------------------------------------
Making VF-1 Sexy
August 06th, 2019
----------------------------------------
VF-1 is fast, but it's also pretty basic. It doesn't (yet) do
pretty colors by types or anything sweet like that. Many of you
are probably fine with that. "Colors are useless" people... I
hear you, but I don't agree.
In fact, even if the colors aren't structured, I still want them!
I've been piping my VF-1 output through lolcat for a few months.
It's brilliant, but was incomplete.
Not to mention any names, but some of you don't wrap your text. I
try not to be picky about whether wrapping happens at 80cols or at
67cols, but when a gopher doesn't wrap at all it makes it very
hard to read. I'll be honest, I usually just skim those posts as a
result.
"Why," I ask myself, "don't they just run it through fold(1)?"
"Duh," I answer myself, "they don't want to or don't care."
"But self, it would make my reading more convenient!"
"Come'on, tomasino. What part of _don't care_ did you not get?"
"I suppose you have a point. You're pretty smart."
"Damn right..."
"So..."
"Oh crap--"
"Why don't you solve it on the client end?"
And I sigh and say, "Of course. VF-1 lets me lolcat. Why not fold
as well? It should be simple."
If you don't care about lolcat and only want to fold output
automatically in VF-1, here's what you do. Add the following line
to your ~/.vf1rc:
$ cat ~/.vf1rc
handler text/plain fold -sw 80 %s
If you want to lolcat it too, like me, then you need to do a
little bit more. I'm not sure what method VF-1 uses internally to
parse the handlers, but it chokes hard on pipes. So, I wrote a very,
very basic shell script to do it for me.
$ cat ~/bin/goph
#!/bin/sh
FIN=${1:-"/dev/stdin"}
fold -sw 80 "$FIN" | lolcat -f
Put that in your PATH and now you can pipe anything you want to
'goph' and have it be pretty. It'll also take a file input. Then,
in your ~/.vf1rc, you can add:
$ cat ~/.vf1rc
handler text/plain goph %s
Let there be color, and pretty wrapping. Enjoy.