我正在使用SICStus 4.2.0,但我无法找到如何清除控制台的内容。它甚至可能吗?
答案 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').
应该这样做。