2013-08-31 7 views
11

私はclojure REPLを起動するときにプリロードしたいいくつかのclojure関数を持っています。これらの関数は、REPLのコンテキスト内で使用しない限りあまり役に立ちません。ライニングの中のクローズファイルをどのようにプリロードするのですか?

私が役に立ったら、私は一般的に私のためにclojure REPLを開始するためにleiningenを使います。

私はこれらの定義を含むクロージャーファイルをプリロードするために、クロージャー(またはフライングクロージャーで利用できない場合は、

答えて

11

が、これは

/path/to/project/dev/user.cljにあなたはデフォルトのREPLの名前空間にしたいコードを入れている私のお気に入りの方法のthe leiningen sample project 1で説明したいくつかの方法があります。

(ns user) 
(def foo 42) 

とproject.cljファイルに次のような行を追加します。これは、それを明確に、これはsの間、devのためのものであることになり

(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 
+3

+1。また、あなたの答えに_any_ project(これは '〜/ .lein/profiles.clj'など)を使ってこれを行う方法を含めることができますか、またemacsを使用していないと仮定します(つまり、 'nrepl-jack-in '、ちょうど通常の端末画面)? – djhaskin987

+2

この部分をanwserに追加しました。これをグローバルに設定するには、.lein/profiles.clj内のプロファイルのrepl-options:initを使用して、ユーザー名前空間を定義するのが望ましいでしょう。 –

+1

私は、 ':source-paths'エントリをプロファイルの中に置く方が適切かもしれないと思います。 ':dev'プロファイルは特に適切と思われます。答えが立てば、どんなコードでも 'dev'の下にありますが、それでもプロジェクトには常に含まれています。 – Geoff

関連する問題