utop中的自动完成

And*_*rea 3 ocaml autocomplete utop

我很抱歉这个新问题,但我刚开始使用OCaml而且我找不到如何使用utop自动完成功能.

当我开始在utop中输入内容时,我会在shell的底部看到一个选项列表.如果只有一个有效选项,按TAB将自动完成我正在写的内容.但如果有多个有效的选择,并且我发现了我想要的那个,我还没有找到一种方法来选择它(除了继续写作).

例如(假设我已导入Core.Std)我输入

Float.of
Run Code Online (Sandbox Code Playgroud)

第一个建议是Float.of_float,第二个建议是Float.of_int.如何选择第二个?

Pat*_*atJ 8

引用utop的自述文件:

utop在提示后显示一个条,用于实时显示可能的完成情况.您可以使用M-left和M-right在其中导航,并使用M-tab选择一个完成.M表示元键,大部分时间是Alt.

因此,您可以使用完成导航Alt.

与utop玩得开心!

编辑:

它似乎Alt并不总是有效,取决于终端.Esc然而,键入然后好的键可以工作.

此外,绑定可以很容易通过~/.lambda-term-inputrc文件重新绑定,请参阅此处.

  • (顺便说一句,使用Alt + Tab实际选择完成将在我尝试的每个系统上失败 - 这一直用于在打开的窗口之间切换) (2认同)
  • 您是否尝试过“Esc”然后“箭头”或“Esc”然后“tab”?`Esc` 通常会在下一个按下的键上放置一个 `Meta`,这样就可以解决这个问题。 (2认同)
  • 对于 macOS 用户:在 Terminal.app 中,M-left/M-right 绑定到转义序列,并且不能与 utop 一起使用。要取消绑定它们,请在运行终端时,转到首选项 (Command-,) -> 配置文件 -> 键盘,选择每个选项并单击“-”。最好在执行此操作之前创建一个新的配置文件,以防您稍后想要恢复。当您在此页面上时,也选择“使用选项作为元键”。完成此操作后,使用此配置文件启动一个新终端,运行 utop,现在 M-left/M-right 将在完成栏上选择不同的完成。 (2认同)