NAME
ansicolumn - ANSI terminal sequence aware column command
VERSION
Version 1.04
SYNOPSIS
ansicolumn [options] [file ...]
DESCRIPTION
ansicolumn is a column(1) command clone which can handle ANSI terminal sequences. It supports traditional options and some of Linux extended, and other original options. Empty lines are not ignored, though.
COMPATIBLE OPTIONS
The column utility formats its input into multiple columns. Rows are filled before columns. Input is taken from file operands, or, by default, from the standard input.
- -c#, --output-width=#
-
Output is formatted for a display columns wide.
- -s#, --separator=#
-
Specify a set of characters to be used to delimit columns for the -t option.
- -t, --table
-
Determine the number of columns the input contains and create a table. Columns are delimited with whitespace, by default, or with the characters supplied using the -s option. Useful for pretty-printing displays.
- -x, --fillrows
-
Fill columns before filling rows.
- -o#, --output-separator=#
-
When used --table or -t option, each columns are joined by two space characters (' ') by default. This option will change it.
- -Rcolumns, --table-right=columns
-
Right align text in these columns. Support only numbers.
EXTENDED OPTION
- -P[#], --page[=#]
-
Page mode. Set these options.
--height=[ terminal height - 1 ] --linestyle=wrap --border --fillup
If optional number is given, it is used as a page height unless option --height exists.
- -D, --document
-
Document mode. Set these options.
--fullwidth --linebreak=all --linestyle=wrap --boundary=word --no-white-space --no-isolation
Next command display DOCX text in 3-up format using App::optex::textconv.
optex -Mtextconv ansicolumn -DPC3 foo.docx | less
- -C#, --pane=#
-
Output is formatted in the specified number of panes. Setting number of panes implies --fullwidth option enabled.
- -S#, --pane-width=#, --pw=#
-
Specify pane width. This includes border spaces.
- -F, --fullwidth
-
Use full width of the terminal. Each panes are expanded to fill terminal width, unless --pane-width is specified.
- --linestyle=none|truncate|wrap|wordwrap, --ls=...
-
Set the style of treatment for longer lines. Default is none.
--linestyle=wordrap is equivalent to --linestyle=wrap --boundary=word.
- --boundary=word
-
Set text wrap boundary. If this option set to word, text is wrapped at word boundary. Option --document set this automatically. Use something like `--boundary=none' to disable it.
- --linebreak=none|all|runin|runout, --lb=...
-
Set the linebreak mode.
- --runin=#, --runout=#
-
Set the number of runin/runout column. Default is both 2.
- --[no-]pagebreak
-
Move to next pane when form feed character found. Default true.
- --border[=style]
-
Print border. Enabled by --page option automatically. If the optional style is given, it is used as a border style and precedes to --border-style option. Use --border=none to disable it.
Border style is specified by --border-style option.
- --border-style=style, --bs=...
-
Set the border style. Current default style is vbar, which is light vertical line filling the page height.
Sample styles: none, vbar, fence, line, heavy-line, ascii-frame, ascii-box, box, frame, page-frame, shadow, shadow-box, comb, rake, mesh, dumbbell, heavy-dumbbell, ribbon, round-ribbon, double-ribbon, double-double-ribbon, heavy-ribbon
These are experimental and subject to change, and this document is not always up-to-date. See `perldoc -m App::ansicolumn::Border` for actual data.
You can define your own style in module or startup file. Put next lines in your
$HOME/.ansicolumnrc
file, for example.option default --border-style myheart __PERL__ App::ansicolumn::Border->add_style( myheart => { left => [ "\N{WHITE HEART SUIT} ", "\N{BLACK HEART SUIT} " ], center => [ "\N{WHITE HEART SUIT} ", "\N{BLACK HEART SUIT} " ], right => [ "\N{WHITE HEART SUIT}" , "\N{BLACK HEART SUIT}" ], }, );
- --height=#
-
Set page height and page mode on.
- --[no-]ignore-space, --[no-]is
-
When used -t option, leading spaces are ignored by default. Use --no-ignore-space option to disable it.
- --[no-]insert-space
- --[no-]paragraph
-
Insert empty line between every successive non-empty lines.
- --[no-]white-space
-
Allow white spaces at the top of each panes, or clean them up. Default true. Negated by --document option.
- --[no-]isolation
-
Allow the first line of a paragraph (continuous non-space lines) is placed at the bottom of a pane. Default true. If false, move it to the top of next pane. Negated by --document option.
- --fillup[=pane|page|none]
-
Fill up final pane or page by empty lines. Parameter is optional and considered as 'pane' by default. Set by --page option automatically. Use --fillup=none if you want to explicitly disable it.
- --tabstop=#
-
Set tab width.
- --column-unit=#
-
Each columns are placed at unit of 8 by default. This option changes the number of unit.
- --ambiguous=width_spec
-
Specifies how to treat Unicode ambiguous width characters. Take a value of 'narrow' or 'wide. Default is 'narrow'.
STARTUP
This command is implemented with Getopt::EX module. So
~/.ansicolumnrc
file is read at start up. If you want use --no-white-space always, put this line in your ~/.ansicolumnrc.
option default --no-white-space
Also command can be extended by original modules with -M option. See `perldoc Getopt::EX` for detail.
INSTALL
CPANMINUS
$ cpanm App::ansicolumn
or
$ curl -sL http://cpanmin.us | perl - App::ansicolumn
To get the latest code, use this:
$ cpanm https://github.com/kaz-utashiro/App-ansicolumn.git
EXAMPLES
https://github.com/kaz-utashiro/App-ansicolumn/tree/master/images
SEE ALSO
App::ansicolumn, https://github.com/kaz-utashiro/App-ansicolumn
Text::ANSI::Printf, https://github.com/kaz-utashiro/Text-ANSI-Printf
AUTHOR
Kazumasa Utashiro
LICENSE
Copyright 2020 Kazumasa Utashiro.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.