如何清除Haskell中的terminal屏幕?

我的用户从我的应用程序菜单中select了一个选项后,如何清除terminal屏幕?

运行shell命令
在windows下cls
在Linux和OS X下清除

这是你可能要找的东西:

ansi-terminal:简单的ANSIterminal支持,与Windows兼容

你可以在Hackage中find它并使用cabal install ansi-terminal进行cabal install ansi-terminal 。 它具有清屏,显示颜色,移动光标等function。

使用它来清除屏幕很容易:(这是与GHCI)

import System.Console.ANSI

clearScreen

在Unix系统上,你可以做System.system "clear" ,它只是调用命令行工具清除。 对于不依赖于外部工具的解决scheme,您需要一个抽象出不同terminaltypes(例如ansi-terminal)的库 。

在理解ANSI转义序列的terminal上(我相信Unix / Linux系统中的每一个术语)都可以简单地使用:

 clear = putStr "\ESC[2J" 

2清除整个屏幕。 如果要清除光标到屏幕的末尾或从光标到屏幕的开头,则可以分别使用01

但是,我不认为这在Windowsshell的作品。

在Windows上快速的方法将是

 import System.Process clear :: IO () clear = system "cls" 

只需按Ctrl + L(在Windows上工作)

在Linux下(至lessUbuntu),这是我用来清除terminal的代码:

 import qualified System.Process as SP clearScreen :: IO () clearScreen = do _ <- SP.system "reset" return ()