bcat
- browser cat
bcat
[-htad] [file...]
btee
[-htad] [file...]
The bcat
utility reads from standard input, or one or more files, and pipes
output into a web browser. file may be '-', in which case standard input is
concatenated at that position.
When invoked as btee
, all input is written immediately to standard output in
addition to being piped into the browser.
bcat
opens a simple, undecorated page with the system default web browser and
immediately begins streaming input. The following options control the browser
display:
-b
, --browser
=default|firefox|safari|chrome|opera|otherThe name of the browser application. Defaults to the value of the
BCAT_BROWSER
environment variable, or the system default browser when
no BCAT_BROWSER
is defined.
-T
, --title
=textUse text as the page <title>
. By default, the path to the current working
directory is used as the title.
-a
, --ansi
Turns on VT100/ANSI escape sequence conversion. This causes all input to be
piped through a2h(1), replacing ANSI escape sequences with HTML for things
like bold, underline, and colors. On by default when the input is text; use
the -a
option to turn it on when the input is HTML.
By default, bcat
attempts to detect whether input is HTML or plain text using
a simple heuristic, but you can force input to be treated as one or the other
with these options:
-t
, --text
The input is non-HTML encoded text. All bare <
and &
characters are
entity encoded, end-of-line characters are converted to <br>
, and the
entire output is wrapped in a <pre>
.
-h
, --html
The input is already HTML encoded. Under this mode, bcat passes input
through to the browser mostly unmodified. The input may be a full HTML
document, or it may be an HTML fragment. bcat
outputs <html>
, <head>
,
and <body>
elements even if they are not included in the input.
Miscellaneous options:
-d
, --debug
BCAT_BROWSER
=default|firefox|safari|chrome|opera|otherThe name of the browser to use by default. bcat
maps this to an
actual browser command based on the current platform. The special
value "default" maps to the system default browser.
BCAT_COMMAND
=commandThe entire browser command line (to be executed by /bin/sh
). This
overrides the BCAT_BROWSER
environment variable and makes the --browser
(-b
) option a no-op. This should only be necessary when running a
browser unknown to bcat or in order to pass special arguments.
With build tools:
make test |bcat
rake test |bcat
As a clipboard viewer:
pbpaste |bcat # mac
xclip -o |bcat # X11
For previewing HTML:
markdown README.md |bcat
redcloth README.textile |bcat
erb -T - template.erb |bcat
mustache < template.mustache |bcat
pygmentize -Ofull,style=colorful -f html main.c |bcat
As a simple man pager:
export MANPAGER='col -b |bcat'
man grep
With git, selectively:
git log -p --color |bcat
git diff --color HEAD@{5d} HEAD |bcat
With git, as the default PAGER:
export GIT_PAGER=bcat
git log -p
git diff HEAD@{5d} HEAD
As a log viewer:
tail -n 1000 -f /var/log/messages |bcat
tail -f $RAILS_ROOT/log/development.log |bcat
Or, a remote log viewer:
ssh example.org 'tail -n 1000 -f /var/log/syslog' |bcat
Preview current buffer as HTML:
:!markdown % |bcat
:!ronn -5 --pipe % |bcat
Create keymappings:
map ,pm :!markdown % \|bcat
map ,pp :!pygmentize -Ofull,style=colorful -f html % \|bcat
Use with makeprg
:
set makeprg=make\ \\\|bcat
set makeprg=markdown\ %\ \\\|bcat
set makeprg=testrb\ %\ \\\|bcat
cat(1), tee(1), open(1)