2013-05-08 2 views

ответ

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

Это не имеет никакого отношения к SICStus. Это ANSI escape code и работает в любой системе, соответствующей ISO.

0

Я провел некоторое время, просматривая документацию, и я не мог найти способ программно очистить экран консоли (в случае, если это возможно, я счастлив, что оказался ошибочным). Кроме того, вы можете использовать SPIDER, то есть SICStus Prolog IDE: http://sicstus.sics.se/spider/ В Spider обычный интерфейс TopLevel имеет возможность очистки текущего содержимого консоли. Надеюсь это поможет.

2

Хотя SWI-Prolog предоставляет предикат tty_clear в своей библиотеке tty, у Sicstus, похоже, нет встроенной альтернативы для этого. Но есть простой способ обхода (для unix/linux, может быть, не так просто в Windows): вы можете запустить оболочку sicstus через rlwrap, которая является оболочкой readline для произвольных команд оболочки. Помимо очевидной пользы от истории команд, это также означает, что теперь вы можете использовать другие функции оболочки в сикстусе, такие как клавиши со стрелками влево/вправо, ключи дома/конца, Ctrl-k для удаления всего после курсора и Ctrl-l, чтобы очистить экран.

rlwrap доступен в виде пакета для многих дистрибутивов, для окон вам нужно будет использовать Cygwin - this article описывает, как настроить rlwrap с помощью PowerShell (для использования с SQLPLUS в данном случае), так что я предполагаю, что PowerShell является требованием тоже.

Таким образом, как только вы установили rlwrap, просто запустите sicstus как rlwrap sicstus и используйте Ctrl-l, чтобы очистить экран.