2010-11-30 7 views
2

私はEmacs、integratedとLeiningenのスワンクを使用しています。 .cljファイルで作業する必要があるたびに、私は次のようにしなければなりません:Emacsの中からleiningen replの読み込みを自動化するには?

  1. コンソールから実行emacs pack/my-ns.clj
  2. タイプM-x lein-swank
  3. コンパイルバッファ。
  4. Clojure REPLでは名前空間を変更します。つまり、タイプは(in-ns 'pack.my-ns)です。

emacs-clj pack/my-ns.cljのようなコンソールから実行するだけで、このプロセスを自動化して自分の環境を使用できるようにするにはどうすればよいですか?

答えて

2

質問に答えがありませんが、Clojureファイルの中で4番目のステップをC-c M-pに置き換えることができます。そうすれば、emacsはどのネームスペースを使用するかファイルの名前空間が自動的に検出されるので、単にEnterキーを押すことができます。 C-c M-pslime-repl-set-packageにマッピングされます。

更新:

ちょうどthisつまずい。その答えで述べられているものを受け取り、それを修正して、スワンクファイルへの最初の接続がコンパイルされるようにする必要があります。名前空間に自動的に切り替わり、replバッファをアクティブにするように設定することもできます。

+0

ありがとう、私はそれをまとめてみよう、成功すればここに指示を書いてください。 – ffriend

2

Swankは、開始時にproject.cljの:repl-init-scriptが指す名前空間を自動的にロードする必要があります。そのため、起動する名前空間に設定する場合は、起動する必要があります。

+0

ありがとうございますが、動作させることはできません。 ':repl-init-script'の値は?それがファイルへのパスであれば、それはどのように見えるべきか(つまり、プロジェクトルート、srcディレクトリ、その他のものから始める必要がある場所)、そしてパッケージ名であれば(つまり ':repl-init-script" pack/my -ns.clj "')それは私のためには機能しません - replはロードされますが、名前空間は変更されません。 Leiningenのバージョンは1.3.1です。 – ffriend

+0

あなたが正しい。そのコードはロードされますが、名前空間は変更されません。 project.cljに:main namespaceを設定すると、replが開始されるときに切り替わります。しかし、それによってAOTも起こる。あなたがそれを望むかどうかは分かりません。 – technomancy

+0

これは適切なオプションです、ありがとうございます。 – ffriend

関連する問題