strip_ctl {fansi} | R Documentation |
Removes Control Sequences from strings. By default it will
strip all known Control Sequences, including ANSI CSI
sequences, two character sequences starting with ESC, and all C0 control
characters, including newlines. You can fine tune this behavior with the
ctl
parameter. strip_sgr
only strips ANSI CSI SGR sequences.
strip_ctl(x, ctl = "all", warn = getOption("fansi.warn"), strip) strip_sgr(x, warn = getOption("fansi.warn"))
x |
a character vector or object that can be coerced to character. |
ctl |
character, any combination of the following values (see details):
|
warn |
TRUE (default) or FALSE, whether to warn when potentially
problematic Control Sequences are encountered. These could cause the
assumptions |
strip |
character, deprecated in favor of |
The ctl
value contains the names of non-overlapping subsets of the
known Control Sequences (e.g. "csi" does not contain "sgr", and "c0" does
not contain newlines). The one exception is "all" which means strip every
known sequence. If you combine "all" with any other option then everything
but that option will be stripped.
character vector of same length as x with ANSI escape sequences stripped
The *_ctl
versions of the functions treat all Control Sequences specially
by default. Special treatment is context dependent, and may include
detecting them and/or computing their display/character width as zero. For
the SGR subset of the ANSI CSI sequences, fansi
will also parse, interpret,
and reapply the text styles they encode if needed. You can modify whether a
Control Sequence is treated specially with the ctl
parameter. You can
exclude a type of Control Sequence from special treatment by combining
"all" with that type of sequence (e.g. ctl=c("all", "nl")
for special
treatment of all Control Sequences but newlines). The *_sgr
versions
only treat ANSI CSI SGR sequences specially, and are equivalent to the
*_ctl
versions with the ctl
parameter set to "sgr".
Non-ASCII strings are converted to and returned in UTF-8 encoding.
fansi for details on how Control Sequences are interpreted, particularly if you are getting unexpected results.
string <- "hello\033k\033[45p world\n\033[31mgoodbye\a moon" strip_ctl(string) strip_ctl(string, c("nl", "c0", "sgr", "csi", "esc")) # equivalently strip_ctl(string, "sgr") strip_ctl(string, c("c0", "esc")) ## everything but C0 controls, we need to specify "nl" ## in addition to "c0" since "nl" is not part of "c0" ## as far as the `strip` argument is concerned strip_ctl(string, c("all", "nl", "c0")) ## convenience function, same as `strip_ctl(ctl='sgr')` strip_sgr(string)