Làm cách nào để xóa màn hình đầu cuối sau khi người dùng của tôi đã chọn một tùy chọn từ menu ứng dụng của tôi?
Làm cách nào để xóa màn hình đầu cuối sau khi người dùng của tôi đã chọn một tùy chọn từ menu ứng dụng của tôi?
Câu trả lời:
:! chạy lệnh shell
:! cls dưới cửa sổ
:! rõ ràng trong Linux và OS X
:! cls
là đủ cho trường hợp sử dụng của tôi nhưng không hoạt động cho trường hợp của người hỏi vì người hỏi không sử dụng GHCi.
Đây là những gì bạn có thể đang tìm kiếm:
ansi-terminal: Hỗ trợ đầu cuối ANSI đơn giản, với khả năng tương thích với Windows
Bạn có thể tìm thấy nó trong Hackage và cài đặt bằng cách sử dụngcabal install ansi-terminal
. Nó đặc biệt có các chức năng xóa màn hình, hiển thị màu sắc, di chuyển con trỏ, v.v.Sử dụng nó để xóa màn hình thật dễ dàng: (đây là với GHCI)
import System.Console.ANSI
clearScreen
Trên một thiết bị đầu cuối hiểu các trình tự thoát ANSI (tôi tin rằng mọi thuật ngữ trong hệ thống Unix / Linux), bạn có thể làm điều đó đơn giản với:
clear = putStr "\ESC[2J"
Các 2
xóa toàn bộ màn hình. Bạn có thể sử dụng 0
hoặc 1
tương ứng nếu bạn muốn xóa từ con trỏ đến cuối màn hình hoặc từ con trỏ đến đầu màn hình.
Tuy nhiên, tôi không nghĩ rằng điều này hoạt động trong Windows shell.
Chỉ cần nhấn Ctrl + L (hoạt động trên Windows)
Trên hệ thống Unix, bạn có thể làm điều System.system "clear"
đó chỉ cần gọi tiện ích dòng lệnh rõ ràng. Đối với một giải pháp không phụ thuộc vào các công cụ bên ngoài, bạn cần có một thư viện tóm tắt về các loại thiết bị đầu cuối khác nhau, chẳng hạn như ansi-terminal .
Một cách nhanh chóng trên Windows sẽ là
import System.Process
clear :: IO ()
clear = system "cls"
system "clear
.
Trên Windows, sử dụng Ctrl + L cho đầu cuối dấu nhắc lệnh Haskell. Và, cho GUI sử dụng tổ hợp phím Ctrl + S .
Trong Linux (ít nhất là Ubuntu), đó là mã tôi sử dụng để xóa thiết bị đầu cuối:
import qualified System.Process as SP
clearScreen :: IO ()
clearScreen = do
_ <- SP.system "reset"
return ()