11
我有一些clojure函数,我想在我开始clojure REPL时预先加载。除非您在REPL的上下文中使用它们,否则这些函数的用处不大。如何在leiningen repl中预加载clojure文件?
如果有帮助,我通常会使用leiningen为我开始clojure REPL。
我如何告诉clojure(或leiningen,如果它不能通过平面clojure)预加载包含这些定义的clojure文件给我?
我有一些clojure函数,我想在我开始clojure REPL时预先加载。除非您在REPL的上下文中使用它们,否则这些函数的用处不大。如何在leiningen repl中预加载clojure文件?
如果有帮助,我通常会使用leiningen为我开始clojure REPL。
我如何告诉clojure(或leiningen,如果它不能通过平面clojure)预加载包含这些定义的clojure文件给我?
有几种方法在我最喜欢的方法是如此让你在默认REPL命名想要的代码the leiningen sample project 一个这样描述到
/path/to/project/dev/user.clj做:
(ns user)
(def foo 42)
,并添加这样一行到project.clj文件:
(defproject hello "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:url "http://example.com/FIXME"
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:dependencies [[org.clojure/clojure "1.5.1"]]
:source-paths ["dev"])
这清楚地表明,这是一个,而小号开发直到将其加载到默认名称空间中。
当您运行nrepl-jack-in
形式的emacs或“雷音REPL”形成的壳,你应该用user>
命名空间与您的代码加载打招呼:
; nREPL 0.1.6
user> foo
42
+1的出色链接。你是否也可以在你的答案中包含一个为_any_项目执行此操作的方法(例如,使用'〜/ .lein/profiles.clj'),并假设我没有使用emacs(即,没有'nrepl-jack-in ',只是普通的终端屏幕)? – djhaskin987
将这部分内容添加到anwser中,并且为了全局进行设置,最好将.lein/profiles.clj中的配置文件中的repl-options:init用于定义用户名称空间。 –
我认为如果将额外的':source-paths'条目放入配置文件中会更合适。我认为':dev'配置文件会特别合适。正如答案所表达的那样,无论代码是在'dev'下面的,还是一直被包含在项目中。 – Geoff