如何清除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
清除整个屏幕。 如果要清除光标到屏幕的末尾或从光标到屏幕的开头,则可以分别使用0
或1
。
但是,我不认为这在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 ()