标签: read-eval-print-loop

如何实现一个很好地处理异步输出的python REPL?

我有一个基于Python的应用程序,可以在一个简单的read-eval-print循环中接受一些命令.我正在使用raw_input('> ')输入.在基于Unix的系统上,我还要import readline让事情变得更好.这一切都很好.

问题是有异步事件进入,我想尽快打印输出.不幸的是,这让事情看起来很难看.输出后,">"字符串不再显示,如果用户输入内容的一半,则会将文本切成两半.它可能应该在打印后重绘用户正在进行的文本.

这似乎必须是一个已解决的问题.这样做的正确方法是什么?

另请注意,我的一些用户是基于Windows的.

TIA

编辑:接受的答案在Unixy平台下工作(当readline模块可用时),但如果有人知道如何在Windows下工作,那将非常感谢!

python readline read-eval-print-loop

12
推荐指数
2
解决办法
6249
查看次数

如何在用户定义的命名空间中启动REPL?

写入(in-ns 'dbx)文件并加载它并不会更改repl的默认命名空间(使用cygwin/console).命名空间仍然是user=>,而不是dbx=>.

vikrant[28] clj
Clojure 1.3.0
user=> (load-file "try1.clj")
#(Namespace dbx)
user=>
Run Code Online (Sandbox Code Playgroud)

我们如何在脚本文件中定义的命名空间中启动REPL?

clojure read-eval-print-loop

12
推荐指数
3
解决办法
9383
查看次数

rlwrap可以使用包装命令自己的TAB完成吗?

我想使用rlwrap和自定义的erlang repl.

如果我将它作为"rlwrap -a myrepl"运行它,它的工作原理非常好.

问题是myrepl有内置选项卡完成,它被rlwrap踩踏.

我想让rlwrap释放TAB键

erlang autocomplete read-eval-print-loop

12
推荐指数
1
解决办法
2538
查看次数

如何在scala repl中导入play

如何在Scala repl中导入播放?

scala> import play.api.libs.json._
<console>:11: error: not found: value play
       import play.api.libs.json._
Run Code Online (Sandbox Code Playgroud)

scala playframework read-eval-print-loop

12
推荐指数
1
解决办法
2054
查看次数

如何与Qt Jambi一起使用Clojure REPL?

我还没有找到在网上使用Clojure REPL和Qt 的解决方案.基本上问题是,只要您调用QApplication/exec以便显示UI,REPL就会挂起.你不能将Cc Cc重新放回REPL,关闭活动的Qt窗口似乎会杀死整个Clojure进程.

现在只能在代理中调用QApplication/processEvents是不可能的,除非代理运行在您创建Qt小部件的完全相同的线程中.我花了两天时间搞清楚这一点,我看到其他人有同样的问题/问题,但没有解决方案.所以这是我的,在代码中:

(add-classpath "file:///usr/share/java/qtjambi.jar")
(ns qt4-demo
  (:import (com.trolltech.qt.gui QApplication QPushButton QFont QFont$Weight)
           (com.trolltech.qt.core QCoreApplication)
           (java.util Timer TimerTask)
           (java.util.concurrent ScheduledThreadPoolExecutor TimeUnit))
  (:require swank.core))

(defn init []
  (QApplication/initialize (make-array String 0)))

(def *gui-thread* (new java.util.concurrent.ScheduledThreadPoolExecutor 1))
(def *gui-update-task* nil)
(def *app* (ref nil))

(defn update-gui []
  (println "Updating GUI")
  (QApplication/processEvents))

(defn exec []
  (.remove *gui-thread* update-gui)
  (def *gui-update-task* (.scheduleAtFixedRate *gui-thread* update-gui 0 150 (. TimeUnit MILLISECONDS))))

(defn stop []
  (.remove *gui-thread* update-gui)
  (.cancel *gui-update-task*))

(defmacro qt4 [& …
Run Code Online (Sandbox Code Playgroud)

lisp qt clojure qt-jambi read-eval-print-loop

11
推荐指数
1
解决办法
2092
查看次数

Clojure名称空间管理 - 有没有办法保存和恢复clojure repl名称空间,导入等的状态?

Clojure有大量的函数/宏来处理命名空间和java包导入.对于我的(有限的)理解,命名空间的设置可以在clojure过程中被视为状态(repl).

当在REPL会话中迭代地工作时,特别是当(重新)加载源文件时,我发现很容易混淆 - 通常当我在命名空间配置中出错或语法错误时.其他时候我想尝试重构命名空间/别名/引用过滤器,但不能在不重新启动REPL的情况下轻松退出现有的命名空间状态.

例如,我希望能够检查点命名空间配置 - 例如在repl上加载代码主体之后 - 然后在尝试在REPL导入的某些库之后返回到"clean-slate",这样我就可以立即测试一个源文件,该文件作为ns宏的一部分导入该库中已过滤的方法子集.

人们可以推荐保存和恢复命名空间配置的方法吗?

state namespaces clojure read-eval-print-loop

11
推荐指数
2
解决办法
1091
查看次数

如何将Clojure REPL的内容转储到文件中?

所以我一直在研究Clojure教程,到目前为止它非常有趣.不幸的是,每次我闭上了REPL时间,我失去所有的defndef我在以前的会话创建.

因此,为了节省将来的时间,是否可以让Clojure REPL将我输入的所有内容保存到文件中,以便我可以挖掘出将来需要用的东西?

clojure read-eval-print-loop

11
推荐指数
2
解决办法
2007
查看次数

Intellij IDEA:在远程计算机上运行Scala REPL控制台.

我想知道是否可以在远程计算机上运行Intellij的scala控制台进程.

问题

我正在我的本地计算机上开发一个scala应用程序,但它需要在远程计算机上运行.

我希望的是远程启动控制台进程(执行代码)并将IntelliJ中的控制台视图/编辑器连接到它 - 自然可以访问我正在开发的本地类.即,这是一个类似于远程启动进程然后连接调试器的设置.

一点背景

应用程序(基于Spark构建)需要与远程计算机位于同一网络的服务器进行大量讨论.在远程计算机上运行控制台进程将对端口/主机名/代理配置有很大帮助.它还可以提高性能,但这在这个问题上是次要的.

我有ssh访问远程机器,因此很容易设置代理/ ssh-tunnels.

希望你能帮忙:)

proxy scala intellij-idea read-eval-print-loop

11
推荐指数
1
解决办法
1752
查看次数

Scala REPL in Gradle

目前,Gradle的scala集成不提供REPL功能.如何使用适当的类路径从Gradle以符合人体工程学的方式运行Scala REPL?

scala classpath gradle read-eval-print-loop

11
推荐指数
1
解决办法
1827
查看次数

如何在 REPL 中获得“帮助”功能

当我使用 REPL 时,我有时需要查找函数的功能,例如splice. 我通常会访问文档网站。但我并不总是有互联网,如果我可以直接在 REPL 中编写help("splice")或某些内容(例如splice?)并查看结果,那就太好了。

\n

然后我认为p6docRakudo Star 附带的可以使用,因为p6doc Array.splice在命令行上提供了文档。然后我在 REPL 中这样做:

\n
> run <p6doc Array.splice>\n\nProc.new(in => IO::Pipe, out => IO::Pipe, err => IO::Pipe, exitcode => 1,\n         signal => 0, pid => Nil, command => ("p6doc", "Array.splice"))\n
Run Code Online (Sandbox Code Playgroud)\n

:out但它有 exitcode 1。当我使用和捕获输出时:err,两者都是空字符串,但我不知道为什么。

\n

有没有办法让 REPL 中的这种帮助功能与“run p6doc”或其他东西一起工作?

\n

我使用 Windows10

\n
Welcome to \xe2\x84\xa2 v2021.07.\nImplementing the \xe2\x84\xa2 programming language v6.d.\nBuilt on MoarVM version 2021.07.\n
Run Code Online (Sandbox Code Playgroud)\n

introspection code-documentation rakudo read-eval-print-loop raku

11
推荐指数
2
解决办法
336
查看次数