web-dev-qa-db-ja.com

Haskellで端末画面をクリアするにはどうすればよいですか?

ユーザーがアプリケーションのメニューからオプションを選択した後、どのように端末画面をクリアできますか?

84
Nubkadiya

:! Shellコマンドを実行する
:! cls窓の下
:! clear LinuxおよびOS Xの場合

174
void

ANSIエスケープシーケンスを理解する端末(Unix/Linuxシステムのすべての用語を信じています)では、次のように簡単に実行できます。

clear = putStr "\ESC[2J"

2は画面全体をクリアします。カーソルから画面の終わりまで、またはカーソルから画面の先頭までクリアする場合は、それぞれ0または1を使用できます。

ただし、これはWindowsシェルでは機能しないと思います。

11

Unixシステムでは、System.system "clear"これは、コマンドラインユーティリティclearを呼び出すだけです。外部ツールに依存しないソリューションの場合、たとえば ansi-terminal などのさまざまな端末タイプを抽象化するライブラリが必要になります。

8
sepp2k

Ctrl + Lを押すだけです(Windowsで動作します)

5
mitaness

Windowsでは、HaskellコマンドプロンプトターミナルにCtrl + Lを使用します。また、GUIの場合はCtrl + Sを使用します。

4
Shuvam Shah

Windowsでの簡単な方法は

import System.Process

clear :: IO ()
clear = system "cls"
3
Boris

Linux(少なくともUbuntu)では、これが端末のクリアに使用するコードです。

import qualified System.Process as SP

clearScreen :: IO ()
clearScreen = do
  _ <- SP.system "reset"
  return ()
0