less -R не отображает цвета

less -R не отображает цвета

Я использую OSSierra и iterm2.

У меня есть небольшой проект, который выполняет простой парсинг markdown в golang, а затем выводит определенные строки в цвете на терминал.https://github.com/deltaskelta/readme. Я использую эту библиотеку для цветаhttps://github.com/fatih/color

Все выглядит замечательно, когда я запускаю свою программу отдельно, но я хочу иметь возможность передавать ее по конвейеру less -Rи получать цветной вывод в пейджере, чтобы было проще просматривать длинные файлы...

Я теряю все цвета, когда пытаюсь передать их в less, должно быть, есть какая-то проблема с базовыми цветовыми кодами, но я недостаточно разбираюсь в этом, чтобы отследить проблему...

Есть идеи?

решение1

Некоторые программы могут определять, записывают ли они данные в канал, обычный файл или на терминал (tty); они создают цветной вывод только в последнем случае.

Пример: lsделает что-то подобное с ls --color=auto. Вы можете принудительно задать цвет с помощью ls --color=always.

Вы должны увидеть, что происходит, когда вы передаете свой инструмент в less(без -Rnor -r). Есть ли вообще какие-либо коды? Сравните с ls --color=auto | lessи ls --color=always | less.

Если нет кодов, то, возможно, вы можетесилаинструмент для их генерации, даже если он используется в конвейере (эквивалент --color=alwaysопции ls). Проверьте документацию по инструменту, если она доступна.

Связанный контент