2012-08-01 105 views
19

我一直在尝试OCaml。有时候它更快,只是使用解释器shell来测试一些代码,但是当我按下'up'键时,它不会显示最后一个命令。如何在OCaml解释器外壳中重复上次命令

当我错过输入内容或希望看到会产生什么样的变化时,这是一种痛苦。

任何人都知道是否有另一个关键?

感谢,

回答

25

使用rlwrap

rlwrap ocaml 

ocaml本身没有readline的支持。

您可以使用~/.inputrc配置readline。 例如,您可以添加这样行吧:

$if ocaml 
"\C-o": "()\C-b" 
"\C-n": ";;\n" 
$endif 

现在你可以在ocaml使用ctrl-octrl-n热键。去尝试一下。

+3

还有'ledit',它像rlwrap:'ledit ocaml'一样工作。如果您使用的是Debian或Ubuntu,请使用'sudo apt-get install ledit'安装。 – jrouquie 2012-08-01 10:43:07

+0

酷,ledit已经安装在我的Ubuntu机器上。 rlwrap就像'sudo apt-get install rlwrap'一样容易安装......其中一个有什么好处? – neildaemond 2012-08-01 11:41:24

+3

@neildaemond:我发现'rlwrap'更好。 rlwrap为您提供历史记录,文件名完成,即时着色,语法完成,括号匹配,使用外部编辑器以及通过.inputrc轻松配置。 – 2012-08-01 11:50:43

2

您可以使用改进的顶层utop。此外,它还包括很好的完成能力。