R: Substring(s) of an ANSI colored string

col_substr {crayon} | R Documentation

## 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

    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))

[Package crayon version 1.3.2 Index]