2012-02-27 91 views
4

當我按上/下,我應該得到 - 就像UNIX - 前面的命令,但我得到:如何在SWI-Prolog控制檯中使用上/下歷史記錄鍵?

Welcome to SWI-Prolog (Multi-threaded, 32 bits, Version 6.0.0) 
Copyright (c) 1990-2011 University of Amsterdam, VU Amsterdam 
SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software, 
and you are welcome to redistribute it under certain conditions. 
Please visit http://www.swi-prolog.org for details. 

For help, use ?- help(Topic). or ?- apropos(Word). 

1 ?- ['nc']. 
% nc compiled into nc 0.00 sec, 84 clauses 
true. 

2 ?- listing. 
true. 

(我按「上」箭頭鍵,進入「列表」命令回來了。然後..)

3 ?- **^[[A** 

我從源代碼編譯而沒有任何額外的'configure'或'make'參數。

在之前的swi-prolog版本中,我發現這個工作是隨便的。有時控制檯陷入一團糟,我不得不按''。強制它終止當前行,那麼歷史記錄會再次開始工作。

但是這個最新版本.. nada ..我使用的是Ubuntu的linux,bash shell。感覺就像一個o.s.環境問題或swi-prolog中的錯誤。箭頭鍵/歷史在linux級別上工作正常。

回答

0

這實際上並不是一個答案,更多的是解決方法,以防萬一其他人有同樣的問題。

雖然'上/下'箭頭鍵出現在6.0.0(和.1中 - 剛試過),但'基於命令'的歷史回憶似乎工作正常,因此可以檢索先前的命令辦法。

例如。

3 ?- !!. 
listing. 
true. 

4 ?- L='fred', integer(L). 
false. 

5 ?- !!. 
L='fred', integer(L). 
false. 

6 ?- h. 
    1 listing. 
    2 listing. 
    3 listing. 
    4 L='fred', integer(L). 
    5 L='fred', integer(L). 
6 ?- !3. 
listing. 
true. 
1

我不知道SWI-Prolog的特別,但我已經使用rlwrap解決這個問題對於沒有內置功能,編輯功能,其他解釋。使用非常簡單;你只需要rlwrap運行命令而不是直接運行它。

+0

謝謝弗蘭克。由於Ubuntu的確是通常的更新,我的問題已經消失。但如果它回來了,我會試試這個。 – magus 2012-04-04 06:44:51

+0

或者readline-editor – m09 2012-04-04 21:43:49

1

在編譯swiprolog以使箭頭正常工作之前,您必須在主機上安裝包libreadline-dev

+0

這可以工作,並且應該被標記爲解決方案,據我所知。 – Kaitain 2017-03-11 19:03:42

相關問題