26

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

一切都像宣传的那样工作,但是我很容易在 REPL 中为 Python 和 Node.js 等运行时获得选项卡完成和命令行历史记录。

我不是在寻找任何繁重的任务,但是这些功能在现代 REPL 中很容易获得(它只是Python 中的一个简单的启动文件,可以在 Node.js 中用几行代码实现)。

是否有一种简单的方法可以在 mit-scheme REPL 中获得选项卡完成和命令历史记录,而无需重型应用程序或不必切换到 emacs(即在 xterm 终端中)?

4

2 回答 2

61

安装readline 包装器

brew install rlwrap

安装后,rlwrap scheme将为您提供持久的历史记录、paren 匹配和制表符补全。我通常将 rlwrap 与以下参数一起使用:

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

-c 完整的文件名

-f 指定用于制表符完成的单词列表。我正在使用MIT Scheme Reference Manual中的绑定精简列表。您可以在此 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.
于 2012-08-11T18:02:49.470 回答
1

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

于 2020-12-19T10:39:16.280 回答