带有命令行历史记录和制表符完成的mit-scheme REPL

时间:2012-08-10 20:22:41

标签: read-eval-print-loop mit-scheme

我正在阅读SICP,我正在mit-scheme通过我的os x 10.8笔记本电脑上安装homebrew

一切都像宣传的那样工作,但是我很容易被REPL的标签完成和命令行历史记录所破坏,因为Python和Node.js这样的运行时。

我不是在寻找任何重要的东西,但是这些功能在现代REPL中很容易实现(在Python中它只是a simple startup file并且可以在a few lines in Node.js中实现)。

在没有重型应用程序或必须切换到emacs(即在xterm终端)的情况下,是否有一种简单的方法可以在mit-scheme REPL中获取制表符完成和命令历史记录?

2 个答案:

答案 0 :(得分:48)

安装readline wrapper

brew install rlwrap

安装完成后,rlwrap scheme将为您提供持续历史记录,填充匹配和制表符完成功能。我通常使用带有以下参数的rlwrap:

-r将输入和输出中显示的所有单词放在完成列表中。

-c完整的文件名

-f指定用于制表符完成的单词列表。我正在使用MIT Scheme Reference Manual的精简绑定列表。 您可以在this gist中找到该列表,而不是在此处重新发布列表。 我将此文件存储在“$ HOME”/scheme_completion.txt

rlwrap -r -c -f "$HOME"/scheme_completion.txt scheme

1 ]=> (flo:a <tab tab>
flo:abs    flo:acos   flo:asin   flo:atan   flo:atan2  
1 ]=> (flo:abs -42.0)

;Value: 42.

答案 1 :(得分:1)

我实际上建议您使用 Emacs,并在其中使用 Geiser 来访问 REPL 并帮助编辑方案文件。它还可以处理各种 Scheme REPL,例如 Chez SchemeRacketMIT SchemeGuileChickenGambit 和 {{3} } 毫不费力。 Chibi Scheme 仍然非常适合与 Scheme 和 LISP 一起使用。强烈推荐。