如何在SICStus Prolog中清除屏幕

时间:2013-05-08 12:44:18

标签: prolog

我正在使用SICStus 4.2.0,但我无法找到如何清除控制台的内容。它甚至可能吗?

4 个答案:

答案 0 :(得分:4)

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

这绝不是SICStus特有的。它是ANSI escape code,适用于任何符合ISO标准的系统。

答案 1 :(得分:2)

虽然SWI-Prolog在其tty_clear库中提供了tty谓词,但Sicstus似乎没有内置的替代方法。但是有一个简单的解决方法(对于unix / linux,在Windows上可能不那么简单):你可以通过rlwrap启动sicstus shell,它是任意shell命令的readline-wrapper。除了命令历史的明显好处之外,这也意味着您现在可以在sicstus中使用其他shell功能,例如左/右箭头键,home / end键,Ctrl-k用于删除光标后的所有内容,以及{{1}清除屏幕。

Ctrl-l可用作许多Linux发行版的软件包,对于需要使用cygwin的windows - this article描述了如何使用powershell设置rlwrap(在这种情况下用于sqlplus)所以我猜测powershell也是一个要求。

总之,一旦安装了rlwrap,只需将sicstus作为rlwrap启动,然后使用rlwrap sicstus清除屏幕。

答案 2 :(得分:0)

我花了一些时间查看文档,我找不到以编程方式清除控制台屏幕的方法(如果可能的话,我很高兴被证明是错误的)。或者,您可能希望使用SPIDER,即SICStus Prolog IDE:http://sicstus.sics.se/spider/在Spider中,普通的TopLevel接口可以选择清除控制台的当前内容。希望这会有所帮助。

答案 3 :(得分:0)

如果您使用的是swipl,请在用户初始化文件中添加以下行:

cls:-write('\33\[2J').

应该这样做。