如何';固定和#x27;使用箭头键的SML/NJ交互式系统

如何';固定和#x27;使用箭头键的SML/NJ交互式系统,sml,smlnj,Sml,Smlnj,我在使用SML/NJ交互系统时遇到了一些问题,也就是说,当我尝试使用箭头键(左键或右键来更正我键入的表达式,直到重复上一个表达式)时,我的终端会打印代码。(例如,^[[A代表up^[[D代表left,等等)。虽然我仍然可以使用该系统,但这会让它变得非常乏味 我环顾了一下Control.Compiler,我有什么遗漏吗?不管它值多少钱,我都在使用Mac终端 谢谢^ ^试试这个。您可以使用socat为许多事情添加readline支持: socat READLINE EXEC:sml 我刚刚意识到您

我在使用SML/NJ交互系统时遇到了一些问题,也就是说,当我尝试使用箭头键(左键或右键来更正我键入的表达式,直到重复上一个表达式)时,我的终端会打印代码。(例如,
^[[A
代表up
^[[D
代表left,等等)。虽然我仍然可以使用该系统,但这会让它变得非常乏味

我环顾了一下Control.Compiler,我有什么遗漏吗?不管它值多少钱,我都在使用Mac终端


谢谢^ ^

试试这个。您可以使用socat为许多事情添加readline支持:

socat READLINE EXEC:sml
我刚刚意识到您使用的是OS X。虽然我还没有测试过它,但socat似乎确实适用于OS X(这在Linux上确实有效)。

另一个选项是


在我的Linux上,我使用“rlwrap”来做同样的事情:谢谢你^ ^哦,感觉好多了(尽管让socat启动并工作起来花了不少功夫。下一个框是Linux)。如果您有,您可以通过运行
sudo port install rlwrap
来安装
rlwrap
。然后将
别名sml='rlwrap/usr/local/smlnj/bin/sml'
添加到
~/.bash_配置文件的新行。我不知道rlwrap(或如上所述滥用socat)直到我找到这个答案!谢谢!也可以使用自制:brew安装rlwrap。您甚至不需要更改bash_配置文件。如果您使用@justspamjustin建议的
别名sml=path
,您可以通过运行
哪个sml
找到
sml
命令的
路径它的解释器对用户来说一点也不友好。我找不到smlj的ipython的等价物,这很不幸
rlwrap sml