Learn R Programming

crayon (version 1.2.0)

col_substr: Substring(s) of an ANSI colored string

Description

This is a color-aware counterpart of base::substr. It works exactly like the original, but keeps the colors in the substrings. The ANSI escape sequences are ignored when calculating the positions within the string.

Usage

col_substr(x, start, stop)

Arguments

x
Character vector, potentially ANSI styled, or a vector to coarced to character.
start
Starting index or indices, recycled to match the length of x.
stop
Ending index or indices, recycled to match the length of x.

Value

  • Character vector of the same length as x, containing the requested substrings. ANSI styles are retained.

See Also

Other ANSI string operations: col_nchar; col_strsplit; col_substring

Examples

Run this code
str <- paste(
  red("red"),
  "default",
  green("green")
)

cat(str, "\n")
cat(col_substr(str, 1, 5), "\n")
cat(col_substr(str, 1, 15), "\n")
cat(col_substr(str, 3, 7), "\n")

substr(strip_style(str), 1, 5)
substr(strip_style(str), 1, 15)
substr(strip_style(str), 3, 7)

str2 <- "another " %+%
  red("multi-", sep = "", underline("style")) %+%
  "text"

cat(str2, "\n")
cat(col_substr(c(str, str2), c(3,5), c(7, 18)), sep = "\n")
substr(strip_style(c(str, str2)), c(3,5), c(7, 18))

Run the code above in your browser using DataLab