防止SublimeREPL中的'lein repl'回显上一个命令

时间:2016-06-27 16:35:36

标签: clojure sublimetext3 sublimetext leiningen sublimerepl

我在OS X 10.10.5和Ubuntu 16.04上运行Sublime Text 3 Build 3117。我刚刚在两者上安装了Leiningen 2.6.1,我开始在SublimeREPL中玩游戏。我正在关注lein tutorial。这是我的project.clj,如果重要的话:

(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 "> " ))
  }
)

现在,当我从命令行在lein repl目录中运行my-stuff并运行任意命令(我一直在使用(+ 1 2 3))时,它会很好地打印出答案:

lein repl from command line

但是,如果我从SublimeREPL以lein repl为焦点运行project.clj并运行相同的命令,它会在打印返回值之前回显该命令:

lein repl in SublimeREPL

我还为SublimeREPL创建了一个lein trampoline run -m clojure.main命令,它没有回音问题:

lein trampoline

基本上,我想要做的是能够使用project.clj运行REPL,但是在输出打印之前没有回显每个命令。我似乎无法弄清楚如何使用project.clj在Sublime中运行trampoline REPL,如果这是最好的选择。如果有不同的方式,即使用lein repl,我只想删除命令echo,并使其看起来与从命令行运行时看起来类似。

1 个答案:

答案 0 :(得分:1)

感谢Sublime Text Forum上的一些help,我得到了一个答案:你只需要将"suppress_echo": true放在Main.sublime-menu文件中,其中定义了Clojure菜单选项。在这种情况下,请打开Packages/SublimeREPL/config/Clojure/Main.sublime-menu,在,之后添加一个逗号"extend_env": {"INSIDE_EMACS": "1"},然后在下一行"suppress_echo": true上添加所有内容。