Comment effacer un écran de terminal une fois que l'utilisateur a sélectionné une option dans le menu de mon application?
:! lance la commande shell
:! cls sous les fenêtres
:! effacer sous linux et OS X
Sur un terminal qui comprend les séquences d'échappement ANSI (je crois que tous les termes des systèmes Unix/Linux), vous pouvez le faire simplement avec:
clear = putStr "\ESC[2J"
Le 2
efface tout l'écran. Vous pouvez utiliser 0
ou 1
respectivement si vous souhaitez effacer du curseur jusqu'à la fin de l'écran ou du curseur au début de l'écran.
Cependant, je ne pense pas que cela fonctionne dans le shell Windows.
Sur les systèmes Unix, vous pouvez utiliser System.system "clear"
qui appelle simplement l'utilitaire de ligne de commande clear. Pour une solution qui ne dépend pas d'outils externes, vous aurez besoin d'une bibliothèque qui résume sur différents types de terminaux, comme par exemple ansi-terminal .
Appuyez simplement sur Ctrl + L (fonctionne sous Windows)
Un moyen rapide sous Windows serait de
import System.Process
clear :: IO ()
clear = system "cls"
Sous Windows, utilisez Ctrl + L pour la commande Haskell terminal invite. Et, pour l'interface graphique, utilisez Ctrl + S .
Sous Linux (au moins Ubuntu), c'est le code que j'utilise pour nettoyer le terminal:
import qualified System.Process as SP
clearScreen :: IO ()
clearScreen = do
_ <- SP.system "reset"
return ()