Я использую SICStus 4.2.0, и мне не удалось выяснить, как очистить содержимое консоли. Возможно ли это?Как очистить экран в SICStus Prolog
ответ
write('\33\[2J').
Это не имеет никакого отношения к SICStus. Это ANSI escape code и работает в любой системе, соответствующей ISO.
Я провел некоторое время, просматривая документацию, и я не мог найти способ программно очистить экран консоли (в случае, если это возможно, я счастлив, что оказался ошибочным). Кроме того, вы можете использовать SPIDER, то есть SICStus Prolog IDE: http://sicstus.sics.se/spider/ В Spider обычный интерфейс TopLevel имеет возможность очистки текущего содержимого консоли. Надеюсь это поможет.
Хотя 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
, чтобы очистить экран.