98

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

4

8 回答 8

212

:! 运行外壳命令
:! windows下的cls
:! 在 linux 和 OS X 下清除

于 2012-02-18T23:29:42.083 回答
62

这就是您可能正在寻找的:

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

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

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

import System.Console.ANSI

clearScreen

于 2010-03-18T18:53:23.057 回答
18

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

于 2017-05-24T07:17:22.450 回答
15

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

clear = putStr "\ESC[2J"

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

但是我认为这在 Windows shell 中不起作用。

于 2012-02-20T10:53:32.017 回答
8

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

于 2010-03-18T18:35:36.923 回答
8

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

于 2018-07-18T16:12:34.053 回答
7

Windows 上的一种快速方法是

import System.Process

clear :: IO ()
clear = system "cls"
于 2013-02-12T15:23:36.250 回答
0

在 Linux(至少是 Ubuntu)下,这是我用于清除终端的代码:

import qualified System.Process as SP

clearScreen :: IO ()
clearScreen = do
  _ <- SP.system "reset"
  return ()
于 2017-05-11T12:07:37.647 回答