在这里我了解了
System.Console.ANSI
,在那个文档页面上我读到了“草莓”风味功能,我读到了它
具有
类型,仅包含转义码,可以在输出之前将其添加到任何其他文本位。String
这正是我在纯代码中想要的,一种采用
String
并以某种方式将其包装在转义序列中的方法,这样当 String
在 IO
monad 中找到它的方式并将在终端中打印时,它会被打印成红色。
如何使用上述模块来实现此目的?
Example.hs
链接会出现 404。
“草莓”函数是以
Code
后缀结尾的函数。
请注意,它们不会 transform
String
值。它们只是 生成 String
值,当输出到 ANSI 终端时,执行所需的操作(更改颜色、移动光标等)。因此,例如,您可以通过连接代码和纯文本来定义纯 String
值:
redHelloWorld :: String
redHelloWorld
= setSGRCode [SetColor Foreground Vivid Red]
++ "hello world"
++ setSGRCode [Reset]
并将其写入控制台
main
或其他 IO
函数:
main :: IO ()
main = do
putStrLn redHelloWorld
完整的示例程序:
import System.Console.ANSI
redHelloWorld :: String
redHelloWorld
= setSGRCode [SetColor Foreground Vivid Red]
++ "hello world"
++ setSGRCode [Reset]
main :: IO ()
main = do
putStrLn redHelloWorld