【发布时间】:2015-01-22 22:55:09
【问题描述】:
我想以漂亮的打印形式将计算后的 Clojure 表达式的结果直接插入我的 Emacs 缓冲区中。
例如,像这样的:
;; [emacs lisp]
(insert (nrepl-dict-get (nrepl-sync-request:eval "(range 30)") "value"))
我得到,在感兴趣的缓冲区中,
;;=>
(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29)
过去,我让 Clojure 为我打印漂亮的东西,如下所示:
(nrepl-dict-get
(nrepl-sync-request:eval
(format "(clojure.core/let [x %s] (with-out-str (clojure.pprint/pprint x)))"
"(range 30)"))
"value")
;;=>
"(0\n 1\n 2\n 3\n 4\n 5\n 6\n 7\n 8\n 9\n 10\n 11\n 12\n 13\n 14\n 15\n 16\n 17\n 18\n 19\n 20\n 21\n 22\n 23\n 24\n 25\n 26\n 27\n 28\n 29)\n"
但是," 和 \n 被转义插入;我希望它们不转义地插入。换句话说,我希望直接插入漂亮打印的结果而不转义引号或换行符。这曾经在早期版本的 Cider 和 cider-nrepl 中工作。
【问题讨论】: