Linuxterminal字符显示为符号,而不是键入键入

我从Linuxterminal使用Ocaml。 有时它会卡住在一个奇怪的模式,它不响应我的键盘按预期。 例如,如果我向上,向下,向右和向左按下箭头,它会生成^[[A^[[B^[[C^[[D in input。 另外,有时如果我只input一个字母,它可能会连续三次重复同一个字母,或者如果我input删除button,它会input“^ H”。

有人知道这里发生了什么? 我假设我无意中做了一些切换模式,但我不知道如何切换回去,或者为什么切换到原来的位置。

我相信这实质上是这个其他堆栈溢出问题的重复:

是否可以使用OCaml解释器中的箭头键?

OCaml解释器的股票版本不解释像箭头键的特殊键。 所以它只会回应他们的控制代码(就像本·格雷厄姆指出的那样)。 为了获得你想要的行为(编辑输入,返回到前面的行等),你需要用行编辑工具包装OCaml解释器。 看到上面链接的其他问题的一些建议。

这并不能解释为什么你会看到不同的行为模式,但我仍然认为这是你想要考虑的问题。

你应该使用Utop。 Utop是一个OCaml解释器,提供自动完成(如bash)和命令历史。 当然,箭头键的所有问题都消失了。

你需要编译Zed和Lambda-Term来编译Utop。