0

我正在阅读Dybvig 的“The Scheme Programming Language”一书。我使用Chez Scheme 9.4.1作为我的 REPL。我正在使用Geiser在 Emacs 中运行所说的 REPL 。Chez Scheme 有一个transcript-on功能,可以将 REPL 的输入和输出记录到一个文本文件中,我觉得这很有用。然而,通过在 Emacs 和 Geiser 中运行它,我还从 Geiser 获得了一个正在运行的“注释”,它使文本文件输出变得不必要的冗长和繁琐,因为它包含非常冗长的 Geiser 输出。例如

> (geiser:eval '#f '(geiser:autodoc '(1 1)))
((result "()") (output . ""))
> (geiser:eval '#f '(geiser:autodoc '(2 1)))
((result "()") (output . ""))
> (geiser:eval '#f '(geiser:autodoc '(3 1)))
((result "()") (output . ""))
> (geiser:eval '#f '(geiser:autodoc '(1)))
((result "()") (output . ""))
> (geiser:eval '#f '(geiser:autodoc '(1 1)))
((result "()") (output . ""))

如何将到文本文件的输出限制为 REPL 的“读取”和“打印”输入和输出,而没有不必要的 Geiser“注释”,同时仍然获得在 Emacs 和 Geiser 中运行它的好处?

4

1 回答 1

0

我不是 Geiser 或 Scheme 方面的专家,但我熟悉 emacs 中的 lisp。我怀疑您将无法以这种方式过滤掉信息- Geiser 的信息请求正在与您的相同 REPL 中输入,只是 emacs 界面不显示它们。但是,Geiser 可能只是使用 emacs 缓冲区来显示 REPL,并且与任何其他文本缓冲区一样,您应该能够很容易地将其内容复制到文件中。如果你擅长配置 emacs,那么自动化过程应该不难——emacs 非常擅长这种事情。

于 2016-10-30T18:53:45.187 回答