Я пытаюсь вывести список результатов git-show и передать их в пейджер.
К сожалению, я не могу сохранить цвет.
Это команда, которую я запускаю:
git log -n10 | awk '{print $1}' | xargs -d '\n' -I{} bash -c 'git show {}' -- | less -MR
Без | less -MR
| less -MR
, выход печатается в цвете.
Я пробовал less -r
, но, очевидно, проблема в том, что git show
или xargs
не сохраняют цвет, когда обнаруживают, что их вывод передается в другую команду, а не в stdout
.
В руководстве xargs
ничего не говорится о сохранении цвета, а также в руководстве git
.
Как сохранить цвет в less
выходе пейджера?
man git-show
описывает, как принудительно сохранить цвет, кажется, взято у man git-diff
:
--color[=<when>] Show colored diff. --color (ie without =<when>) is the same as --color=always. <when> can be one of always, never, or auto.
Обновленная команда bash:
git log -n10 | awk '{print $1}' | xargs -d '\n' -I{} bash -c 'git show --color=always {}' -- | less -MR