Question

When using npm in M-x term, it generate color message like this (even with -q) :

inverse color

Information from what-cursor-position

There are text properties here:
font-lock-face       (:foreground "red3" :background "black" :inverse-video nil)
fontified            t

It is ugly, and also hard to read in other themes, is it possible to change the color on the fly ? For example, change color of text that match npm http, npm ERR!

Thanks.

Was it helpful?

Solution

You can disable colors in npm with the command:

npm config set color false

This doesn't exactly answer your question, in that it's not a way to override ANSI colors in term-mode, but it will solve your problem, in that the npm output will no longer be ugly and hard to read.

OTHER TIPS

I created a wrapper for npm in davidchambers/dotfiles#1. Here's the code in full:

__strip_background_colors() {
  local output="$(sed $'s:\x1B\[4[0-9]m::g')"
  [[ -n $output ]] && printf %s%s "$output" "$1"
}

npm() {
  # Strip the visually offensive background colours from npm's output,
  # leaving the foreground colours intact.
  NPM_CONFIG_COLOR=always "$(which npm)" "$@" \
    1> >(__strip_background_colors $'\n' >&1) \
    2> >(__strip_background_colors '' >&2)
}

It removes the offensive background colours while preserving the rather nice foreground colours. :)

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top