调用clojure.main/repl时如何更改为命名空间

调用clojure.main/repl时如何更改为命名空间,clojure,read-eval-print-loop,Clojure,Read Eval Print Loop,我正在使用clojure.main/repl(请参阅),希望在用户键入任何内容之前自动切换到ns。但是怎么做呢 :init似乎无法解决我的问题,或者如何使用它 请注意: 我知道 我在org.dipert.swingrepl中使用repl,所以我对lein的:init ns选项不感兴趣 我不知道org.dipert.swingrepl或者为什么有人想使用它,但它非常简单: (clojure.main/repl :init #(in-ns 'my-favorite-namespace)) 实际

我正在使用
clojure.main/repl
(请参阅),希望在用户键入任何内容之前自动切换到ns。但是怎么做呢

:init
似乎无法解决我的问题,或者如何使用它

请注意:

  • 我知道
  • 我在
    org.dipert.swingrepl
    中使用repl,所以我对lein的
    :init ns
    选项不感兴趣

我不知道
org.dipert.swingrepl
或者为什么有人想使用它,但它非常简单:

(clojure.main/repl :init #(in-ns 'my-favorite-namespace))

实际上,它可以与
clojure.main/repl
一起使用,但不能与
swingrepl
一起使用。我猜,
swingrepl
有一个bug。swingrepl之所以有用,是因为我的用户只需双击jar即可访问REPL。或者你现在知道如何在简单的双击(请不要使用cmd中的命令)后触发Windows上的
cmd
启动以托管
clojure.main/repl
?我相信Fogus是在玩弄nrepl cljs体系结构的想法,如果您可以启动nrepl服务器,并将
*in*
绑定到环处理程序,将
*out*
绑定到环响应,那么您可以从浏览器repl web应用程序获得即时反馈。另一个想法是使用java类来启动任意命令,如
leinrepl
。或者只使用makeregularwindows链接到Leiningen来执行带有选项的命令。