如何清除Haskell中的终端屏幕?

Nub*_*iya 86 terminal haskell ghci

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

小智 181

! 运行shell命令
!CLS windows下
! 在linux和OS X下清除

  • ghci有备忘单吗? (2认同)
  • -1选民可以解释他们的投票吗? (2认同)
  • @Peter我最好的猜测是因为他们不认为这是一个haskell解决方案(理所当然;它只适用于GHCi),它不适用于它们(依赖shell)或者他们只是认为ZachS的答案更好一个.`!cls`足以满足我的使用案例,但由于提问者不使用GHCi,因此不适用于提问者的情况. (2认同)

Zac*_*chS 56

这是你可能正在寻找的:

ansi-terminal:简单的ANSI终端支持,兼容Windows

您可以在Hackage中找到它并使用安装cabal install ansi-terminal.它具有清除屏幕,显示颜色,移动光标等功能.

使用它来清除屏幕很简单:(这是GHCI)

import System.Console.ANSI

clearScreen

  • 这是正确的答案.尝试在系统的软件包管理器中查找软件包,因为cabal通常不能使用它,也不提供卸载命令. (4认同)

Fed*_*ini 11

在了解ANSI转义序列的终端上(我相信Unix/Linux系统中的每个术语),您只需使用以下命令即可:

clear = putStr "\ESC[2J"
Run Code Online (Sandbox Code Playgroud)

2清除整个屏幕.您可以分别使用01清除光标到屏幕的结尾或从光标到屏幕的开头.

但是我认为这不适用于Windows shell.


sep*_*p2k 8

在Unix系统上,您可以执行System.system "clear"只调用命令行实用程序清除.对于不依赖于外部工具的解决方案,您需要一个抽象不同终端类型的库,例如ansi-terminal.

  • **希望有一种方式来评价评论*:) (9认同)
  • @Pradeep:是的,我在哈斯克尔回答. (8认同)
  • @Pradeep:不需要喊.(见http://en.wikipedia.org/wiki/All_caps#Internet) (8认同)

Shu*_*hah 8

在 Windows 上,对 Haskell 命令提示符终端使用Ctrl + L。并且,对于 GUI 使用Ctrl + S


Bor*_*ris 7

在 Windows 上的一种快速方法是

import System.Process

clear :: IO ()
clear = system "cls"
Run Code Online (Sandbox Code Playgroud)


mit*_*ess 5

只需按Ctrl + L(适用于Windows)

  • 也适用于 macOS (2认同)