Пейджер мерзавца меньше, но что вызывает вывод, окрашивающий?

STDIN и команда программы (включая аргументы) являются совершенно другими вещами. STDIN является файлом, из которого может читать программа. Это может быть подключено к терминалу, дисковому файлу, устройству, сокету, и т.д. Команда программы является просто рядом строк, первой из которых является название программы. Они передаются как аргументы программе main() функция.

19
13.04.2017, 15:37
3 ответа

Git использует isatty () , чтобы проверить, является ли stdout tty: это используется, чтобы узнать, нужно ли использовать пейджер ( pager.c ), а также цвета ( color.c ).

18
27.01.2020, 19:45

Выполняется:

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;                                                                 
}  
12
27.01.2020, 19:45

меньше может поддерживать цвет с помощью -r -raw control-chars и -R --RAW-CONTROL-CHARS

Вы можете использовать питоны pygmentize для подсветки и встраивания.

Чтобы объединить все это, сконфигурируйте меньший фильтр , как описано на суперпользователе

3
27.01.2020, 19:45

Теги

Похожие вопросы