
Я использую 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
(без -R
nor -r
). Есть ли вообще какие-либо коды? Сравните с ls --color=auto | less
и ls --color=always | less
.
Если нет кодов, то, возможно, вы можетесилаинструмент для их генерации, даже если он используется в конвейере (эквивалент --color=always
опции ls
). Проверьте документацию по инструменту, если она доступна.