如何在写入stdout时保留颜色

时间:2017-07-14 17:25:46

标签: haskell conduit

#!/usr/bin/env stack
{- stack --install-ghc --resolver lts-8.8 runghc
-}
import System.IO
import System.Process

main = createProcess (proc "ls" [])

虽然Haskell将stdout视为tty,但hIsTerminalDevice stdout返回Truels无法识别它,并且不输出颜色。

有没有办法绕过这个或者显然不可能在Haskell中使用彩色输出?

编辑:要清楚,我不希望只有ls工作,而是在将stdout标识为tty时支持颜色输出的所有Unix工具。

1 个答案:

答案 0 :(得分:5)

答案是Haskell没有错,我混淆了我自己的ls,这个别名是ls --color=tty