我正在用我的方式阅读Dybvig's "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的"read“和"print”输入和输出,而没有不必要的Geiser“注释”,同时仍然获得在Emacs和Geiser中运行它的好处?
发布于 2016-10-31 02:53:45
我不是Geiser或Scheme方面的专家,但我熟悉emacs中的lisp。我怀疑你不能以这种方式过滤掉信息-Geiser的信息请求与你的请求是在相同的REPL中输入的,只是emacs界面不显示它们。但是,Geiser可能只是使用emacs缓冲区来显示REPL,并且像任何其他文本缓冲区一样,您应该能够非常容易地将其内容复制到文件中。如果你擅长配置emacs,那么自动化过程应该不难-- emacs在这方面做得很好。
https://stackoverflow.com/questions/40329791
复制相似问题