4

Linux ターミナルから Ocaml を使用しています。キーボードに期待どおりに反応しない奇妙なモードでスタックすることがあります。たとえば、上下左右の矢印を押すと、^[[A^[[B^[[C^[[D入力に生成されます。または、文字を 1 回だけ入力すると、同じ文字が 3 回続けて繰り返される場合や、削除ボタンを入力すると代わりに「^H」と入力される場合があります。

ここで何が起こっているか知っている人はいますか?モードを切り替えるためにうっかり何かをしていると思いますが、元に戻す方法や、そもそも切り替えている理由はわかりません。

4

2 に答える 2

6

これは本質的に、この他のスタックオーバーフローの質問の複製であると思います:

OCaml インタプリタで矢印キーを使用することは可能ですか?

OCaml インタプリタの標準バージョンは、矢印キーなどの特殊キーを解釈しません。そのため、制御コードをエコーするだけです (Ben Graham が指摘しているように)。おそらく必要な動作 (入力を編集する、前の行に戻るなど) を取得するには、OCaml インタープリターを行編集機能でラップする必要があります。いくつかの提案については、上記にリンクされている他の質問を参照してください。

これは、異なる「モード」の動作が見られる理由を説明するものではありませんが、これが問題についてどのように考えたいかということだと思います。

于 2012-11-14T03:51:42.497 に答える
2

Utop を使用する必要があります。Utopは、オートコンプリート (bash など) とコマンド履歴を提供する OCaml インタープリターです。もちろん、矢印キーに関する問題はすべて解消されます。

Utop をコンパイルするには、 ZedLambda-Termをコンパイルする必要があります。

于 2012-11-14T08:02:29.323 に答える