4

上/下を押すと、unix と同じように、前のコマンドを取得する必要がありますが、代わりに次のようになります。

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 では、これがでたらめに機能することがわかりました..時々、コンソールが混乱してしまい、'.' を押さなければなりませんでした。現在の行を強制的に終了させるには、履歴が再び機能し始めます。

しかし、この最新バージョン..灘..私はubuntu Linux、bashシェルを使用しています。OS環境の問題か、swi-prologのバグのように感じます。矢印キー/履歴は、Linux レベルで正常に機能します。

4

4 に答える 4

2

libreadline-dev矢印を機能させるには、swiprolog をコンパイルする前に、ホストにパッケージをインストールする必要があります。

于 2013-02-23T14:23:55.340 に答える
2

特にswi-prologについては知りませんが、組み込みの編集機能を備えていない他のインタープリターについては、rlwrapを使用してこの問題を解決しました。使い方はとても簡単です。コマンドを直接実行する代わりに、rlwrap でコマンドを実行するだけです。

于 2012-03-22T15:53:23.497 に答える
1

他の誰かが同じ問題を抱えている場合に備えて、これは実際には答えではなく、回避策です。

「上/下」矢印キーは 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.
于 2012-03-01T18:13:53.690 に答える