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