ユーザーがアプリケーションのメニューからオプションを選択した後、どのように端末画面をクリアできますか?
:! Shellコマンドを実行する
:! cls窓の下
:! clear LinuxおよびOS Xの場合
ANSIエスケープシーケンスを理解する端末(Unix/Linuxシステムのすべての用語を信じています)では、次のように簡単に実行できます。
clear = putStr "\ESC[2J"
2
は画面全体をクリアします。カーソルから画面の終わりまで、またはカーソルから画面の先頭までクリアする場合は、それぞれ0
または1
を使用できます。
ただし、これはWindowsシェルでは機能しないと思います。
Unixシステムでは、System.system "clear"
これは、コマンドラインユーティリティclearを呼び出すだけです。外部ツールに依存しないソリューションの場合、たとえば ansi-terminal などのさまざまな端末タイプを抽象化するライブラリが必要になります。
Ctrl + Lを押すだけです(Windowsで動作します)
Windowsでは、HaskellコマンドプロンプトターミナルにCtrl + Lを使用します。また、GUIの場合はCtrl + Sを使用します。
Windowsでの簡単な方法は
import System.Process
clear :: IO ()
clear = system "cls"
Linux(少なくともUbuntu)では、これが端末のクリアに使用するコードです。
import qualified System.Process as SP
clearScreen :: IO ()
clearScreen = do
_ <- SP.system "reset"
return ()