3

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

4

4 回答 4

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

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

于 2014-12-31T16:36:08.660 回答
3

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

rlwrap可作为许多 linux 发行版的软件包使用,对于 windows,您需要使用 cygwin -本文描述了如何使用 powershell 设置 rlwrap(在这种情况下与 sqlplus 一起使用),所以我猜 powershell 也是必需的。

总之,一旦你安装了 rlwrap,只需启动 sicstus asrlwrap sicstus并使用它Ctrl-l来清除屏幕。

于 2013-09-08T12:12:09.647 回答
0

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

于 2013-09-08T11:13:38.053 回答
0

如果您使用的是 swipl,那么在您的用户初始化文件中添加这一行:

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

那应该这样做。

于 2020-08-18T09:55:12.763 回答