
我在 OSSierra 上,使用 iterm2。
我有一個小項目,它在 golang 中對 markdown 進行一些簡單的解析,然後將某些行以彩色列印到終端https://github.com/deltaskelta/readme。我正在使用這個庫來獲取顏色https://github.com/fatih/color
當我單獨運行程式時,一切看起來都很棒,但我希望能夠將其通過管道傳輸到尋呼機less -R
並在尋呼機中獲取彩色輸出,這樣查看長文件會更容易...
當我嘗試通過管道傳輸到 時less
,我丟失了所有顏色,底層顏色代碼肯定存在一些問題,但我對此了解不夠,無法追查問題......
有任何想法嗎?
答案1
有些程式可以偵測它們是否寫入管道或常規文件,或終端機 (tty);它們僅在後一種情況下才會產生彩色輸出。
例:ls
用 做類似的事情ls --color=auto
。您可以透過 強制顏色ls --color=always
。
您應該看到當您將工具透過管道連接到less
(不帶-R
或-r
)時會發生什麼。有沒有代碼?與ls --color=auto | less
和進行比較ls --color=always | less
。
如果沒有程式碼那麼也許你可以力量即使在管道中使用時也可以產生它們的工具(相當於--color=always
的選項ls
)。檢查工具文件(如果有)。