Skip to content
master
Go to file
Code

Latest commit

* Avoid warning if INSIDE_EMACS does not contain version.

The INSIDE_EMACS environment variable is not guaranteed to include the version
number. For example, https://github.com/akermu/emacs-libvterm sets it to
"vterm". To avoid warnings in this case we remove all non-numeric characters and
return NA if nothing remains.

* Note new handling of INSIDE_EMACS in the NEWS.
dcf6d44

Git stats

Files

Permalink
Failed to load latest commit information.

README.markdown



crayon


Stylish terminal output in R

Project Status: Active - The project has reached a stable, usable state and is being actively developed. Linux Build Status Windows Build status CRAN RStudio mirror downloads Coverage Status

With crayon it is easy to add color to terminal output, create styles for notes, warnings, errors; and combine styles.

ANSI color support is automatically detected and used. Crayon was largely inspired by chalk.

Installation

install.packages("crayon")

Styles

Crayon defines several styles that can be combined. Each style in the list has a corresponding function with the same name.

General styles

  • reset
  • bold
  • blurred (usually called dim, renamed to avoid name clash)
  • italic (not widely supported)
  • underline
  • inverse
  • hidden
  • strikethrough (not widely supported)

Text colors

  • black
  • red
  • green
  • yellow
  • blue
  • magenta
  • cyan
  • white
  • silver (usually called gray, renamed to avoid name clash)

Background colors

  • bgBlack
  • bgRed
  • bgGreen
  • bgYellow
  • bgBlue
  • bgMagenta
  • bgCyan
  • bgWhite

Screenshot on OSX

Usage

The styling functions take any number of character vectors as arguments, and they concatenate and style them:

library(crayon)
cat(blue("Hello", "world!\n"))

Crayon defines the %+% string concatenation operator to make it easy to assemble strings with different styles.

cat("... to highlight the " %+% red("search term") %+% " in a block of text\n")

Styles can be combined using the $ operator:

cat(yellow$bgMagenta$bold('Hello world!\n'))

Styles can also be nested, and then inner style takes precedence:

cat(green(
  'I am a green line ' %+%
  blue$underline$bold('with a blue substring') %+%
  ' that becomes green again!\n'
))

It is easy to define your own themes:

error <- red $ bold
warn <- magenta $ underline
note <- cyan
cat(error("Error: subscript out of bounds!\n"))
cat(warn("Warning: shorter argument was recycled.\n"))
cat(note("Note: no such directory.\n"))

256 colors

Most modern terminals support the ANSI standard for 256 colors, and you can define new styles that make use of them. The make_style function defines a new style. It can handle R's built in color names (see the output of colors()) as well as RGB specifications via the rgb() function. It automatically chooses the ANSI colors that are closest to the specified R and RGB colors, and it also has a fallback to terminals with 8 ANSI colors only.

ivory <- make_style("ivory")
bgMaroon <- make_style("maroon", bg = TRUE)
fancy <- combine_styles(ivory, bgMaroon)
cat(fancy("This will have some fancy colors"), "\n")

License

MIT @ Gábor Csárdi

About

🖍️ R package for colored terminal output

Topics

Resources

License

Releases

No releases published

Languages

You can’t perform that action at this time.