2013-05-08 344 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来清除屏幕。