首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一个REPL把他们都绑起来?

一个REPL把他们都绑起来?
EN

Stack Overflow用户
提问于 2011-04-12 17:51:50
回答 3查看 2.2K关注 0票数 28

我想知道是否有一个不特定于语言的REPL。我花了大量的时间在REPL中来回摸索(主要是对于Clojure、Scala和Haskell),而捆绑的那些都或多或少地让我感到沮丧。似乎REPL的工作是相当通用的,因为它们:

  • 阅读:接受用户输入
  • 评估:将输入传递到某个运行时进行处理。
  • 打印:将结果打印到屏幕上
  • 循环:等待下一个用户输入

我不明白为什么不应该有一些语言不可知论的REPL,但我一直找不到这样的东西。在我理想的REPL中,有些东西我想要:

  • Linux命令行应用程序
  • 通过向上箭头可访问无限历史
  • 能够在重新运行之前编辑以前的命令。
  • 历史搜索就像巴什的ctrl-r
  • 一个REPL中有多个会话,所以我可以很容易地在它们之间切换

更乐观地

  • 语法突出显示,上下文感知代码完成。

这个存在吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-04-12 18:12:00

Bash对C-r一无所知:它使用readline来实现这一点,以及向上箭头的历史记录。听起来你要找的REPL是读行吗?只需在命令前面加上你想要的类似REPL的行为就行了(如果你没有它,就安装它吧--这很棒),你应该做得很好。

代码语言:javascript
复制
$ rlwrap java -jar clojure.jar
票数 33
EN

Stack Overflow用户

发布于 2011-04-13 03:37:37

Scala2.9 REPL将具有CTRL反向搜索支持。夜间建筑已经有了。上下文感知选项卡完成已经有一段时间了(尽管它可以改进)。

rlwrap中使用scala时,请使用-Xnojline标志:

代码语言:javascript
复制
rlwrap scala -Xnojline

这可以防止jline干扰rlwrap。然后,rlwrap可以自由地使用readline来实现游标运动和历史记录,但是在解释器看到行之前,您将没有语言感知的完成。

我希望Scala将得到改进。

  • 有一个表示编译器,它是2.9的一部分,我认为它用于突出显示错误和完成。
  • Scala2.9使用的jline能够利用jansi使用ansi颜色

因此,我可以梦想有一天我将在Scala中拥有IDE级别的特性。实际上,这需要大量的努力,添加这些特性肯定比改进eclipse支持更低的优先级。此外,在eclipse中添加REPL支持可能更有意义。

票数 5
EN

Stack Overflow用户

发布于 2011-04-14 05:12:03

虽然不是严格地说是REPL,但塞科提供了一个笔记本样式的shell,可以用任何语言计算带有JSR-223绑定的表达式。这个快速增长的名单包括Javascript、Scheme、Python、Clojure、Groovy和Prolog等语言。

塞科的灵感,数学笔记本前端,原则上可以评估任何语言的表达式,尽管这需要一些工作来实现。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5639502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档