2013-05-08 332 views

回答

5
write('\33\[2J'). 

這不是特定於SICStus的。它是ANSI escape code,適用於任何符合ISO標準的系統。

0

我花了一些時間瀏覽文檔,我無法找到一種以編程方式清除控制檯屏幕的方法(如果這是可能的,我很高興被證明是錯誤的)。或者,您可能想要使用SPIDER,即SICStus Prolog IDE:http://sicstus.sics.se/spider/在Spider中,普通的TopLevel界面可以選擇清除控制檯的當前內容。希望這可以幫助。

2

雖然SWI-Prolog在其tty庫中提供了tty_clear謂詞,但Sicstus似乎沒有內置替代方案。但是有一個簡單的解決方法(對於unix/linux,在windows上可能不那麼簡單):您可以通過rlwrap啓動sicstus外殼程序,該程序是任意shell命令的readline包裝程序。除了命令歷史記錄的顯而易見的好處之外,這也意味着您現在可以在sicstus中使用其他shell功能,例如左/右箭頭鍵,home/end鍵,Ctrl-k用於刪除光標後的所有內容,並且可以使用Ctrl-l來清除屏幕。

rlwrap可作爲包許多Linux發行版,適用於Windows,你需要cygwin的使用 - this article描述我如何設置rlwrap使用PowerShell(對於用sqlplus用在這種情況下),所以猜測PowerShell是一個要求了。

總之,一旦你安裝了rlwrap,只需啓動sicstus爲rlwrap sicstus並使用Ctrl-l來清除屏幕。