如何从sublimeREPL(clojure)提示符中删除命名空间名称?
-
21-12-2019 - |
题
我正在使用clojure sublimeREPL,我想知道是否可以从提示符中删除命名空间名称
目前我的提示如下所示:
foo.core=>
更多的时候由于某种原因它是加倍:
foo.core=>foo.core=>
我希望能有这个:
>
我找不到sublimeREPL包中定义此行为的地方
任何帮助欢迎
解决方案
据我所知,lein repl
不识别设置提示的参数。此外,标准 tools.nrepl
, ,如所使用 lein repl
, ,具有设置提示的能力,但它隐藏在一个私有函数中 cmdline.clj
而且它不暴露于任何公共功能。因此,公开此功能将意味着修改Leinter和工具。nrepl。
或者,当前可访问的设置提示的方法是作为函数的参数 clojure.main/repl
.Sublime没有设置为直接与this交互,因为它设置为使用 nrepl
与Clojure通信的协议。
所以,除非我错过了什么,否则你的选择是:
- 接受您无法更改提示
- 换Leiningen和工具.nrepl所以都暴露了一个提示选项
- 更改Sublime,以便它可以使用clojure。main/repl直接
其他提示
我知道这是一个老问题,但有一个比接受的更好的答案。在你的 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 "> " )
你应该准备好了。
不隶属于 StackOverflow