【问题标题】:How to clear screen in SICStus Prolog如何在 SICStus Prolog 中清除屏幕
【发布时间】:2013-05-08 12:44:17
【问题描述】:

我使用的是 SICStus 4.2.0,但无法找出如何清除控制台的内容。有可能吗?

【问题讨论】:

    标签: prolog


    【解决方案1】:

    虽然 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 来清除屏幕。

    【讨论】:

      【解决方案2】:
      write('\33\[2J').
      

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          【解决方案4】:

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

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

          应该可以的。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-10-17
            相关资源
            最近更新 更多