NAME
Text::ANSI::Printf - printf function for string with ANSI sequence
VERSION
Version 2.02
SYNOPSIS
use Text::ANSI::Printf;
Text::ANSI::Printf::printf FORMAT, LIST
Text::ANSI::Printf::sprintf FORMAT, LIST
use Text::ANSI::Printf qw(ansi_printf ansi_sprintf);
ansi_printf FORMAT, LIST
ansi_sprintf FORMAT, LIST
DESCRIPTION
Text::ANSI::Printf is a almost-printf-compatible library with a capability of handling:
- ANSI terminal sequences
- Multi-byte wide characters
- Backspaces
You can give any string including these data as an argument for
printf and sprintf funcitons. Each field width is calculated
based on its visible appearance.
For example,
printf "| %-5s | %-5s | %-5s |\n", "Red", "Green", "Blue";
this code produces the output like:
| Red | Green | Blue |
However, if the arguments are colored by ANSI sequence,
printf("| %-5s | %-5s | %-5s |\n",
"\e[31mRed\e[m", "\e[32mGreen\e[m", "\e[34mBlue\e[m");
this code produces undsirable result:
| Red | Green | Blue |
ansi_printf can be used to properly format colored text.
use Text::ANSI::Printf 'ansi_printf';
ansi_printf("| %-5s | %-5s | %-5s |\n",
"\e[31mRed\e[m", "\e[32mGreen\e[m", "\e[34mBlue\e[m");
It does not matter if the result is shorter than the original text.
Next code produces [R] [G] [B] in proper color.
ansi_printf("[%.1s] [%.1s] [%.1s]\n",
"\e[31mRed\e[m", "\e[32mGreen\e[m", "\e[34mBlue\e[m");
FUNCTIONS
-
printf FORMAT, LIST
-
sprintf FORMAT, LIST
-
ansi_printf FORMAT, LIST
-
ansi_sprintf FORMAT, LIST
Use just like perl's printf and sprintf functions except that printf does not take FILEHANDLE.
IMPLEMENTATION NOTES
This module uses Text::Conceal and Text::ANSI::Fold::Util internally.
SEE ALSO
Term::ANSIColor::Concise, https://github.com/tecolicom/Term-ANSIColor-Concise
Text::Conceal, https://github.com/kaz-utashiro/Text-Conceal
Text::ANSI::Fold::Util, https://github.com/tecolicom/Text-ANSI-Fold-Util
Text::ANSI::Printf, https://github.com/tecolicom/Text-ANSI-Printf
App::ansicolumn, https://github.com/tecolicom/App-ansicolumn
App::ansiecho, https://github.com/tecolicom/App-ansiecho
https://en.wikipedia.org/wiki/ANSI_escape_code
AUTHOR
Kazumasa Utashiro
LICENSE
Copyright 2020-2023 Kazumasa Utashiro.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.