1

我正在使用 clojure sublimeREPL,我想知道是否可以从提示中删除命名空间名称

目前我的提示是这样的:

foo.core=>

由于某种原因,它更经常加倍:

foo.core=>foo.core=>

我希望能够拥有这个:

>

我找不到在 sublimeREPL 包中定义此行为的地方

欢迎任何帮助

4

2 回答 2

3

据我所知,lein repl不承认设置提示的参数。此外,由tools.nrepl使用的标准lein repl具有设置提示的能力,但它隐藏在私有函数中cmdline.clj,并且不暴露给任何公共函数。因此,公开此功能意味着修改 Leiningent 和 tools.nrepl。

或者,当前可访问的设置提示的方法是作为函数的参数clojure.main/repl。Sublime 没有设置为直接与此交互,因为它设置为使用该nrepl协议与 Clojure 进行通信。

因此,除非我遗漏了什么,否则您的选择是:

  • 接受您无法更改提示
  • 更改 Leiningen 和 tools.nrepl 以显示提示选项
  • 更改 Sublime 使其可以直接使用 clojure.main/repl
于 2014-02-26T20:00:44.280 回答
0

我知道这是一个老问题,但有一个比公认的更好的答案。在您的project.clj文件中,您可以:repl-options像这样设置:

(defproject my-stuff "0.1.0"
  :description "Leiningen Tutorial Project"
  :url "http://example.com/FIXME"
  :license {:name "MIT"
            :url "http://opensource.org/licenses/MIT"}
  :dependencies [[org.clojure/clojure "1.8.0"]]
  :main ^:skip-aot my-stuff.core
  :target-path "target/%s"
  :profiles {:uberjar {:aot :all}}
  :repl-options {
    ;; custom prompt
    prompt (fn [ns] (str "> " ))
  }
)

在你的情况下,替换prompt (fn [ns] (str "> " ))prompt (str "> " )你应该已经准备好了。

于 2016-06-27T15:07:42.420 回答