When using npm in M-x term
, it generate color message like this (even with -q) :
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.
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.
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. :)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With