This function helps with multi-column output of ANSI styles strings.
It works well together with boxx()
, see the example below.
Usage
ansi_columns(
text,
width = console_width(),
sep = " ",
fill = c("rows", "cols"),
max_cols = 4,
align = c("left", "center", "right"),
type = "width",
ellipsis = symbol$ellipsis
)
Arguments
- text
Character vector to format. Each element will formatted as a cell of a table.
- width
Width of the screen.
- sep
Separator between the columns. It may have ANSI styles.
- fill
Whether to fill the columns row-wise or column-wise.
- max_cols
Maximum number of columns to use. Will not use more, even if there is space for it.
- align
Alignment within the columns.
- type
Passed to
ansi_nchar()
andansi_align()
. Most probably you want the default,"width"
.- ellipsis
The string to append to truncated strings. Supply an empty string if you don't want a marker.
Details
If a string does not fit into the specified width
, it will be
truncated using ansi_strtrim()
.
fmt <- ansi_columns(
paste(col_red("foo"), 1:10),
width = 50,
fill = "rows",
max_cols=10,
align = "center",
sep = " "
)
boxx(fmt, padding = c(0,1,0,1), header = col_cyan("Columns"))
#> ┌ Columns ───────────────────────────────────────────┐ #> │ foo 1 foo 2 foo 3 foo 4 foo 5 │ #> │ foo 6 foo 7 foo 8 foo 9 foo 10 │ #> └────────────────────────────────────────────────────┘
See also
Other ANSI string operations:
ansi_align()
,
ansi_nchar()
,
ansi_strsplit()
,
ansi_strtrim()
,
ansi_strwrap()
,
ansi_substr()
,
ansi_substring()
,
ansi_toupper()
,
ansi_trimws()