【发布时间】:2013-05-08 12:44:17
【问题描述】:
我使用的是 SICStus 4.2.0,但无法找出如何清除控制台的内容。有可能吗?
【问题讨论】:
标签: prolog
我使用的是 SICStus 4.2.0,但无法找出如何清除控制台的内容。有可能吗?
【问题讨论】:
标签: prolog
虽然 SWI-Prolog 在其 tty 库中提供了一个 tty_clear 谓词,但 Sicstus 似乎没有内置的替代方法。但是有一个简单的解决方法(对于 unix/linux,在 Windows 上可能没那么简单):您可以通过 rlwrap 启动 sicstus shell,这是任意 shell 命令的 readline-wrapper。除了命令历史的明显好处外,这还意味着您现在可以在 sicstus 中使用其他 shell 功能,例如左/右箭头键、home/end 键、用于删除光标后所有内容的 Ctrl-k 和 Ctrl-l清屏。
rlwrap 可作为许多 linux 发行版的软件包使用,对于 Windows,您需要使用 cygwin -this article 描述了如何使用 powershell 设置 rlwrap(在这种情况下与 sqlplus 一起使用)所以我猜 powershell 是一个也有要求。
总而言之,一旦您安装了 rlwrap,只需将 sicstus 启动为 rlwrap sicstus 并使用 Ctrl-l 来清除屏幕。
【讨论】:
write('\33\[2J').
这绝不是 SICStus 特有的。它是ANSI escape code,适用于任何符合 ISO 标准的系统。
【讨论】:
我花了一些时间查看文档,但找不到以编程方式清除控制台屏幕的方法(如果有可能,我很高兴被证明是错误的)。或者,您可能想要使用 SPIDER,即 SICStus Prolog IDE:http://sicstus.sics.se/spider/ 在 Spider 中,普通的 TopLevel 界面具有清除控制台当前内容的选项。希望这会有所帮助。
【讨论】:
如果您使用的是 swipl,则在您的用户初始化文件中添加这一行:
cls:-write('\33\[2J').
应该可以的。
【讨论】: