NAME

up - optex module for multi-column paged output

SYNOPSIS

optex -Mup command ...

optex -Mup -C2 -- command ...

optex -Mup -G2x2 -- command ...

DESCRIPTION

up is a module for the optex command that pipes the output through App::ansicolumn for multi-column formatting and a pager. The name comes from the printing term "n-up" (2-up, 3-up, etc.) which refers to printing multiple pages on a single sheet.

The module automatically calculates the number of columns based on the terminal width divided by the pane width (default 85 characters).

The pager command is taken from the $PAGER environment variable if set, otherwise defaults to less. When using less, -F +Gg options are automatically appended. -F causes less to exit immediately if the output fits on one screen. +Gg causes less to read all input before displaying, which may take time for large output, but prevents empty trailing pages from being shown.

OPTIONS

Module options must be specified before -- separator.

--grid=CxR, -G CxR

Set the grid layout. For example, --grid=2x3 or --grid=2,3 creates a 2-column, 3-row layout (6-up). This is equivalent to -C2 -R3.

--pane=N, -C N

Set the number of columns (panes) directly.

--row=N, -R N

Set the number of rows. The page height is calculated by dividing the terminal height by this value.

--height=N

Set the page height directly in lines.

--pane-width=N, -S N

Set the pane width in characters. Default is 85. When --pane is not specified, the number of panes is calculated by dividing the terminal width by this value.

--border-style=STYLE, --bs=STYLE

Set the border style for ansicolumn. Default is heavy-box. See App::ansicolumn for available styles.

--line-style=STYLE, --ls=STYLE

Set the line style for ansicolumn. Available styles are none, truncate, wrap, and wordwrap. Default is wrap (inherited from ansicolumn's document mode).

--pager=COMMAND

Set the pager command. Default is $PAGER or less.

--no-pager

Disable pager. Output goes directly to stdout.

EXAMPLES

List files in multiple columns with pager:

optex -Mup ls -l

Use 2 columns:

optex -Mup -C2 -- ls -l

Set pane width to 100:

optex -Mup -S100 -- ls -l

Use 2 rows (upper and lower):

optex -Mup -R2 -- ls -l

Use 2x2 grid (4-up):

optex -Mup -G2x2 -- ls -l

Use a different border style:

optex -Mup --bs=round-box -- ls -l

Output without pager (useful for piping):

optex -Mup --no-pager -C2 -- ls -l | head

Truncate long lines:

optex -Mup --ls=truncate -- ps aux

INSTALL

CPANMINUS

cpanm App::optex::up

SEE ALSO

App::optex, https://github.com/kaz-utashiro/optex

App::optex::up, https://github.com/kaz-utashiro/optex-up

App::ansicolumn

AUTHOR

Kazumasa Utashiro

LICENSE

Copyright 2025 Kazumasa Utashiro.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.