Bisakah Anda lebih jelas tentang sistem antarmuka pengguna yang Anda gunakan dalam program Haskell? Apakah maksud Anda Anda hanya membaca dan menulis teks ke stdin / stdout? Jika demikian, mereka tidak memiliki konsep implisit tentang "layar". Jika Anda bermaksud program Anda untuk bekerja dengan asumsi bahwa ada terminal yang terpasang ke stdin / stdout, maka Anda harus mengkodekan program Anda untuk menggunakan beberapa paket kontrol terminal, seperti yang ditunjukkan pada jawaban @ZackS.
MtnViewMark
2
Silakan pilih jawaban yang benar. Orang harus melalui semua jawaban!
Shishir Gupta
Jawaban:
198
:! jalankan perintah shell :! CLS di bawah jendela ! jelas di bawah linux dan OS X
@Peter tebakan terbaik saya adalah karena mereka tidak menganggapnya sebagai solusi haskell (memang demikian; ini hanya berfungsi di GHCi), tidak berfungsi untuk mereka (bergantung pada shell) atau mereka hanya menganggap jawaban ZachS lebih baik . :! clscukup memadai untuk kasus penggunaan saya tetapi tidak berfungsi untuk kasus penanya karena penanya tidak menggunakan GHCi.
John Dvorak
58
Inilah yang mungkin Anda cari:
ansi-terminal: Dukungan terminal ANSI sederhana, dengan kompatibilitas Windows
Anda dapat menemukannya di Hackage dan menginstal menggunakan cabal install ansi-terminal. Ini secara khusus memiliki fungsi untuk membersihkan layar, menampilkan warna, menggerakkan kursor, dll.
Menggunakannya untuk membersihkan layar itu mudah: (ini dengan GHCI)
Ini jawaban yang benar. Cobalah untuk mencari paket di manajer paket sistem Anda, karena komplotan rahasia umumnya tidak bekerja dengan itu dan tidak menawarkan perintah uninstall.
Evi1M4chine
14
Di terminal yang memahami urutan escape ANSI (saya percaya setiap istilah dalam sistem Unix / Linux) Anda dapat melakukannya hanya dengan:
clear = putStr "\ESC[2J"
The 2membersihkan seluruh layar. Anda dapat menggunakan 0atau 1masing - masing jika Anda ingin menghapus dari kursor ke ujung layar atau dari kursor ke awal layar.
Namun saya tidak berpikir ini berfungsi di shell Windows.
Pada sistem Unix Anda dapat melakukan System.system "clear"yang hanya memanggil utilitas baris perintah clear. Untuk solusi yang tidak bergantung pada alat eksternal, Anda memerlukan pustaka yang mengabstraksikan berbagai jenis terminal seperti misalnya ansi-terminal .
Jawaban:
:! jalankan perintah shell
:! CLS di bawah jendela
! jelas di bawah linux dan OS X
sumber
:! cls
cukup memadai untuk kasus penggunaan saya tetapi tidak berfungsi untuk kasus penanya karena penanya tidak menggunakan GHCi.Inilah yang mungkin Anda cari:
ansi-terminal: Dukungan terminal ANSI sederhana, dengan kompatibilitas Windows
Anda dapat menemukannya di Hackage dan menginstal menggunakancabal install ansi-terminal
. Ini secara khusus memiliki fungsi untuk membersihkan layar, menampilkan warna, menggerakkan kursor, dll.Menggunakannya untuk membersihkan layar itu mudah: (ini dengan GHCI)
import System.Console.ANSI
clearScreen
sumber
Di terminal yang memahami urutan escape ANSI (saya percaya setiap istilah dalam sistem Unix / Linux) Anda dapat melakukannya hanya dengan:
clear = putStr "\ESC[2J"
The
2
membersihkan seluruh layar. Anda dapat menggunakan0
atau1
masing - masing jika Anda ingin menghapus dari kursor ke ujung layar atau dari kursor ke awal layar.Namun saya tidak berpikir ini berfungsi di shell Windows.
sumber
Cukup tekan Ctrl + L (berfungsi di Windows)
sumber
Pada sistem Unix Anda dapat melakukan
System.system "clear"
yang hanya memanggil utilitas baris perintah clear. Untuk solusi yang tidak bergantung pada alat eksternal, Anda memerlukan pustaka yang mengabstraksikan berbagai jenis terminal seperti misalnya ansi-terminal .sumber
Cara cepat di Windows adalah dengan
import System.Process clear :: IO () clear = system "cls"
sumber
system "clear
.Di Windows, gunakan Ctrl + L untuk terminal command prompt Haskell. Dan, untuk GUI menggunakan Ctrl + S .
sumber
Di Linux (setidaknya Ubuntu), itulah kode yang saya gunakan untuk membersihkan terminal:
import qualified System.Process as SP clearScreen :: IO () clearScreen = do _ <- SP.system "reset" return ()
sumber