Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell 具有现代外壳特征的REPL_Shell_Scripting - Fatal编程技术网

Shell 具有现代外壳特征的REPL

Shell 具有现代外壳特征的REPL,shell,scripting,Shell,Scripting,我正在创建一个脚本(在Lisp中,尽管这可以应用于任何带有REPL的语言),用户可以使用该语言的REPL与之交互。但这甚至不包括记忆历史这样的基本交互功能。我想知道是否可以告诉终端仿真器使用任意语言而不是内置语言来解释命令 谢谢 好的,按照user2864740的建议,我查看了GNU Readline,它提供了我所寻找的大部分功能。我将切换到Guile Scheme而不是Common Lisp,因为Guile支持开箱即用的Readline。但是,它看起来也可以在公共Lisp中工作:另一种方法可能

我正在创建一个脚本(在Lisp中,尽管这可以应用于任何带有REPL的语言),用户可以使用该语言的REPL与之交互。但这甚至不包括记忆历史这样的基本交互功能。我想知道是否可以告诉终端仿真器使用任意语言而不是内置语言来解释命令


谢谢

好的,按照user2864740的建议,我查看了GNU Readline,它提供了我所寻找的大部分功能。我将切换到Guile Scheme而不是Common Lisp,因为Guile支持开箱即用的Readline。但是,它看起来也可以在公共Lisp中工作:

另一种方法可能是启动编辑器emacs,run

M-x shell

在这个shell中运行Lisp REPL。您可以免费获得许多功能,如命令历史记录。

内置语言是一种任意语言。先选那个。“sh”,“powershell”,你选择的语言?如果你正在写你自己的回复,你可能会对各种各样的回复感兴趣;但请注意,这(通常)不是终端的产品,也不会使shell以某种方式理解您的语言/环境。但问题是,终端的某些功能(如点击向上箭头以转到先前输入的命令)与输入的语言无关。如果我运行'sbcl',我可以解释lisp代码,但现在我使用的shell的特性。编辑:好的,看起来如果我能将Readline和Lisp结合起来,我就能得到我想要的。如果它起作用,我会回来说点什么。与一个与您正在使用的解释器进行SLIME/SWANK风格交互的优秀编辑器相比,一个readline风格的REPL(其中有很多)实际上是非常弱的。如果你想找一种读线风格的东西,我认为你的眼光太低了。(认为交互式调试、内联文档查找、语法感知缩进和格式化、语法高亮显示等……都是手上的RePL的正常即时评价行为)……考虑Emacs LIVE介绍如何查找RE:最小可接受的特性UnutRead。