首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >clojure sublimeREPL中的pprint

clojure sublimeREPL中的pprint
EN

Stack Overflow用户
提问于 2013-12-17 09:10:38
回答 1查看 200关注 0票数 0

是否有一种方法可以在clojure sublimeREPL中使用pprint代替常规打印?

目前,我必须这样包装代码才能这样做:

代码语言:javascript
复制
(clojure.pprint/pprint (for [i (range 10)] {i {:times2 (* i 2) :times3 (* i 3)}}))
=>    ({0 {:times2 0, :times3 0}}
       {1 {:times2 2, :times3 3}}
       {2 {:times2 4, :times3 6}}
       {3 {:times2 6, :times3 9}}
       {4 {:times2 8, :times3 12}}
       {5 {:times2 10, :times3 15}}
       {6 {:times2 12, :times3 18}}
       {7 {:times2 14, :times3 21}}
       {8 {:times2 16, :times3 24}}
       {9 {:times2 18, :times3 27}})

很抱歉给你举了个假例子

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-17 15:58:29

您可以使用简单的nrepl中间件来完成,例如:

代码语言:javascript
复制
(defn pprint-middleware [h]
  (fn [{:keys [code op] :as msg}]
    (if (and (= op "eval") (not (empty? code)))
      (->> #(str "(clojure.pprint/pprint " % ")")
           (update-in msg [:code])
           h)
      (h msg))))

将其添加到repl中的最简单方法是在您的repl-options中配置project.clj

代码语言:javascript
复制
:repl-options {:nrepl-middleware [nrepl.utils/pprint-middleware]})

下面是完整的project.clj示例:

代码语言:javascript
复制
(defproject sample "0.1.0"
  :dependencies [[org.clojure/clojure "1.4.0"]]
  :repl-options {:nrepl-middleware [sample.utils/pprint-middleware]})
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20630034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档