user.clj和init.clj不工作?

时间:2012-01-05 03:55:43

标签: clojure read-eval-print-loop leiningen

这是我的问题: 我每次打开新的repl时都需要运行一些代码,在Google中搜索我发现我可以使用文件init.cljuser.clj(与Leiningen一起)

这是我需要运行的代码:

(set! *print-length* 103)  
(println "hello")
(println *print-length*)

这些是两个文件的结果:

[~/project]$ lein repl
hello    <- this is the println, so the file is excecuted  
103      <- this is the println of *print-length* apparently change  
REPL started; server listening on localhost port 20875  
user=> *print-length*  
nil      <- but the val of *print-length* don't change

我有什么需要做的或是否有一些错误?

感谢所有人!

2 个答案:

答案 0 :(得分:4)

lein的init.clj在leiningen流程中运行,而不是在项目流程中运行。请参阅https://github.com/technomancy/leiningen(搜索init.clj)

答案 1 :(得分:4)

(alter-var-root #'*print-length* (constantly 103))中的{p> ~/user.clj适合我。

据我所知set!binding的动态范围之外无效。