Как очистить экран терминала в Haskell?

Как очистить экран терминала после того, как мой пользователь выбрал опцию из моего приложения?

Ответ 1

:! запустите команду оболочки
:! cls под окнами
:! clear под linux и OS X

Ответ 2

Это то, что вы, возможно, ищете:

ansi-terminal: Простая поддержка терминала ANSI, с совместимостью с Windows.

Вы можете найти его в Hackage и установить с помощью cabal install ansi-terminal . Он специально имеет функции для очистки экрана, отображения цветов, перемещения курсора и т.д.

С его помощью легко очистить экран: (это с GHCI)

import System.Console.ANSI

clearScreen

Ответ 3

В системах Unix вы можете сделать System.system "clear", который просто вызывает утилиту командной строки. Для решения, которое не зависит от внешних инструментов, вам понадобится библиотека, которая абстрагируется по различным типам терминалов, например, ansi-terminal.

Ответ 4

На терминале, который понимает escape-последовательности ANSI (я считаю, что каждый термин в системах Unix/Linux) вы можете сделать это просто с помощью

clear = putStr "\ESC[2J"

2 очищает весь экран. Вы можете использовать 0 или 1 соответственно, если вы хотите очистить курсор от конца экрана или от курсора до начала экрана.

Однако я не думаю, что это работает в оболочке Windows.

Ответ 5

Быстрый запуск Windows -

import System.Process

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

Ответ 6

Просто нажмите Ctrl + L (работает в Windows)

Ответ 7

В Linux (по крайней мере, Ubuntu), код, который я использую для очистки терминала:

import qualified System.Process as SP

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