
Ich bin auf OSSierra und verwende iterm2.
Ich habe ein kleines Projekt, das eine einfache Analyse von Markdown in Golang durchführt und dann bestimmte Zeilen in Farbe auf dem Terminal ausgibthttps://github.com/deltaskelta/readme. Ich verwende diese Bibliothek für Farbehttps://github.com/fatih/color
Wenn ich mein Programm alleine ausführe, sieht alles gut aus, aber ich möchte es weiterleiten less -R
und meine farbige Ausgabe an einen Pager senden können, damit sich lange Dateien leichter anzeigen lassen ...
Beim Versuch, eine Weiterleitung zu verwenden less
, gehen alle Farben verloren. Es muss ein Problem mit den zugrunde liegenden Farbcodes vorliegen, aber ich weiß nicht genug darüber, um dem Problem auf die Spur zu kommen ...
Irgendwelche Ideen?
Antwort1
Einige Programme können erkennen, ob sie in eine Pipe, eine normale Datei oder auf ein Terminal (tty) schreiben. Nur im letzteren Fall erzeugen sie eine farbige Ausgabe.
Beispiel: ls
macht so etwas mit ls --color=auto
. Sie können die Farbe durch erzwingen ls --color=always
.
less
Sie sollten sehen, was passiert, wenn Sie Ihr Tool an (ohne -R
nor ) weiterleiten -r
. Gibt es überhaupt Codes? Vergleichen Sie mit ls --color=auto | less
und ls --color=always | less
.
Wenn keine Codes vorhanden sind, können Sie vielleichtGewaltdas Tool, um sie zu generieren, auch wenn es in einer Pipe verwendet wird (entspricht der --color=always
Option von ls
). Prüfen Sie die Tool-Dokumentation, falls verfügbar.