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

Pac*_*ane 20 interpreter ocaml arrow-keys ledit

每次我在解释器中使用这些键时,我都会看到这样的符号出现:

[[D^[[C
Run Code Online (Sandbox Code Playgroud)

我在ZSH中使用Linux Mint 12,但是我在使用bash的Ubuntu中获得了相同的结果.另外,在ssh中也是如此.

Jef*_*eld 22

库存OCaml toplevel没有内置的行编辑.我使用rlwrap:

$ cat bin/ocaml
#!/bin/sh
exec rlwrap /usr/local/bin/ocaml "$@"
Run Code Online (Sandbox Code Playgroud)

在我看来,使用没有这样的东西的顶层是非常痛苦的!

其他可能性是在emacs下运行toplevel(我认为是一种流行的选择),或者使用utop.我没有使用过utop,但听起来很酷.

  • utop非常酷.除了支持基本行编辑(箭头键移动光标,历史记录),utop还支持相当强大的上下文敏感完成.例如,L <tab> .i <tab>将完成List.iter(假设stdlib是范围内唯一的东西). (2认同)

rgr*_*erg 19

另一种选择是使用: ledit ocaml

虽然我更喜欢utop而不是其他任何东西.

  • 我将其添加到我的.bashrc中:`alias ocaml =“ ledit ocaml”` (2认同)