Bagaimana cara saya menghapus layar terminal setelah pengguna saya memilih opsi dari menu aplikasi saya?
Bagaimana cara saya menghapus layar terminal setelah pengguna saya memilih opsi dari menu aplikasi saya?
Jawaban:
:! jalankan perintah shell
:! CLS di bawah jendela
! jelas di bawah linux dan OS X
:! 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
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 menggunakan 0
atau 1
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.
Cukup tekan Ctrl + L (berfungsi di 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 .
Cara cepat di Windows adalah dengan
import System.Process
clear :: IO ()
clear = system "cls"
system "clear
.
Di Windows, gunakan Ctrl + L untuk terminal command prompt Haskell. Dan, untuk GUI menggunakan Ctrl + S .
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 ()