我在Linux终端上使用Ocaml。有时它会陷入一种奇怪的模式,它无法按预期响应我的键盘。例如,如果我向上,向下,向右和向左按下箭头,它会在输入中生成^[[A^[[B^[[C^[[D
。或者,有时如果我只输入一次字母,它可能连续三次重复相同的字母和/或如果我键入删除按钮,则输入“^ H”。
有谁知道这里发生了什么?我假设我无意中做了一些事情来切换模式,但我不知道如何切换它或者为什么它首先切换。
答案 0 :(得分:6)
我认为这基本上是其他Stack Overflow问题的重复:
OCaml解释器的库存版本不解释箭头键之类的特殊键。所以它只会回应他们的控制代码(正如本格雷厄姆指出的那样)。要获得您可能想要的行为(编辑输入,返回上一行等),您需要使用行编辑工具包装OCaml解释器。请参阅上面链接的其他问题以获取一些建议。
这并不能解释为什么你会看到不同的“行为模式”,但我仍然认为这就是你想要思考问题的方式。
答案 1 :(得分:2)
你应该使用Utop。 Utop是一个OCaml解释器,提供自动完成(如bash)和命令历史。当然,箭头键的所有问题都会消失。
您需要编译Zed和Lambda-Term来编译Utop。