5

对于那些不知道*print-length*代表什么的人:

如果您在 REPL 中(set! *print-length* 200)进行评估(range),这通常会导致打印无限的数字列表,则只会打印前 200 个数字。

我正在尝试将此设置为我所有 REPL 中的默认值profiles.clj。现在我得到了这个,但它不起作用:

{:user {:plugins [[lein-swank "1.4.4"]
                  [lein-catnip "0.5.0"]]
        :repl-options {*print-length* 200}} 
 :dev {:dependencies [[clj-ns-browser "1.2.0"]
                      [org.clojure/tools.trace "0.7.5"]]}}

这有什么问题?

更新。Tnx Michal 回答了这个问题。我的固定profiles.clj现在看起来像这样。请注意,它仅适用于项目内部。

{:user {:plugins [[lein-swank "1.4.4"]
                  [lein-catnip "0.5.0"]]
        :repl-options {:init (set! *print-length* 200)}} 
 :dev {:dependencies [[clj-ns-browser "1.2.0"]
                      [org.clojure/tools.trace "0.7.5"]]}}
4

2 回答 2

3

:repl-options需要是 Leiningenrepl任务支持的选项图;其他任何内容都将被忽略。*print-length*不是一个有效的选项(也不是nil;我必须检查以确定是否在此处评估了键,但这两种方式都不起作用)。

相反,您应该使用类似的东西

:repl-options {:init (set! *print-length* 200)}

有关可用选项(包括)的描述,请参阅sample.project.cljLeiningen 存储库的根目录。:init

于 2013-02-02T17:40:59.883 回答
2

现在 project.clj 也支持这一点:

:global-vars {*print-length* 20}
于 2014-09-24T20:29:33.707 回答