ansi_term.pl -- Print decorated text to ANSI consoles
This library allows for exploiting the color and attribute facilities of most modern terminals using ANSI escape sequences. This library provides the following:
- ansi_format/3 allows writing messages to the terminal with ansi attributes.
- It defines the hook prolog:message_line_element/2, which provides ansi attributes for print_message/2.
- ansi_format(+Attributes, +Format, +Args) is det
- Format text with ANSI attributes. This predicate behaves as
format/2 using Format and Args, but if the
current_output
is a terminal, it adds ANSI escape sequences according to Attributes. For example, to print a text in bold cyan, do?- ansi_format([bold,fg(cyan)], 'Hello ~w', [world]).
Attributes is either a single attribute or a list thereof. The attribute names are derived from the ANSI specification. See the source for sgr_code/2 for details. Some commonly used attributes are:
- bold
- underline
fg(Color)
,bg(Color)
,hfg(Color)
,hbg(Color)
Defined color constants are below.
default
can be used to access the default color of the terminal.- black, red, green, yellow, blue, magenta, cyan, white
ANSI sequences are sent if and only if
- The
current_output
has the propertytty(true)
(see stream_property/2). - The Prolog flag
color_term
istrue
.
- prolog:message_line_element(+Stream, +Term) is semidet[multifile]
- Hook implementation that deals with
ansi(+Attr, +Fmt, +Args)
in message specifications.