STDIN и команда программы (включая аргументы) являются совершенно другими вещами. STDIN является файлом, из которого может читать программа. Это может быть подключено к терминалу, дисковому файлу, устройству, сокету, и т.д. Команда программы является просто рядом строк, первой из которых является название программы. Они передаются как аргументы программе main()
функция.
Выполняется:
git diff --color=always > output
показывает переходы цвета.
Черт, я нашел его в git
файле color.c
:
static int check_auto_color(void)
{
if (color_stdout_is_tty < 0)
color_stdout_is_tty = isatty(1);
if (color_stdout_is_tty || (pager_in_use() && pager_use_color)) {
char *term = getenv("TERM");
if (term && strcmp(term, "dumb"))
return 1;
}
return 0;
}
меньше
может поддерживать цвет с помощью -r
-raw control-chars
и -R
--RAW-CONTROL-CHARS
Вы можете использовать питоны pygmentize
для подсветки и встраивания.
Чтобы объединить все это, сконфигурируйте меньший фильтр , как описано на суперпользователе