Как я могу остановить цветной выход npm из-за уродливости в режиме Emacs?
При использовании npm в M-x term
он генерирует цветное сообщение, подобное этому (даже с -q):
![inverse color]()
Информация из what-cursor-position
There are text properties here:
font-lock-face (:foreground "red3" :background "black" :inverse-video nil)
fontified t
Это уродливо, а также трудно читать в других темах, возможно ли изменить цвет на лету? Например, измените цвет текста, который соответствует npm http
, npm ERR!
Спасибо.
Ответы
Ответ 1
Вы можете отключить цвета в npm с помощью команды:
npm config set color false
Это точно не отвечает на ваш вопрос, так как это не способ переопределить цвета ANSI в режиме term-mode, но это решит вашу проблему, поскольку вывод npm больше не будет уродливым и трудно читаемым.
Ответ 2
Я создал обертку для npm
в davidchambers/dotfiles # 1. Здесь полный код:
__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 output,
# leaving the foreground colours intact.
NPM_CONFIG_COLOR=always "$(which npm)" "[email protected]" \
1> >(__strip_background_colors $'\n' >&1) \
2> >(__strip_background_colors '' >&2)
}
Он удаляет оскорбительные цвета фона, сохраняя при этом довольно приятные цвета переднего плана.:)