Clojure emacs スライム + swank ディレクトリの質問
-
21-09-2019 - |
質問
Emacs を clojure-swank と Slime で使用し、開発環境を設定しようとしています。そして問題に遭遇しました。repl を開始すると、不明なディレクトリでスタックし、名前空間をロードできなくなります。clojure repl が適切なファイルを見つけられないためです。
カレントディレクトリを変更する方法を知っている人はいますか?
追伸:私は emacs と Slime を使い始めたばかりなので初心者です。
解決
スライムの現在のディレクトリの概念を変更したい場合は、 ,cd<CR>
(<CR>
= Enter) を選択し、パスを入力します。
ただし、これは問題に対する実際の適切な解決策ではありません。適切な解決策には、(「your.namespace」を使用できるように)クラスパスを設定することが含まれます。そのためには、 この非常に長い答え クラスパスを適切に設定することについての質問に回答しましたが、役立つかもしれません...:-)
ちなみに、私は次のような解決策にはやや反対します。 add-classpath
, 、これは現在非推奨としてマークされており、そもそも依存することを意図していなかったので...その一方で、確かにそれは 5月 完全にうまく機能するので、簡単なクラスパス挿入のギミックとして役立つかもしれない場合に備えて知っておく価値があります。
本当に優れた SLIME ベースの開発環境が必要な場合は、非常に優れた環境を紹介したいと思います。 clojure-project
Phil Hagelberg による elisp 関数。関連するすべての変数を設定し、プロジェクトのメイン ディレクトリで SLIME を起動します (対話的に提供されます)。実際、これは Clojure グループに投稿されています ここにリンクがあります そのメッセージのメール アーカイブのコピーにコピーします。修正が必要な点が 1 つあることに注意してください -- swank-clojure-jar-path
へのフルパスに設定する必要があります clojure.jar
. 。それ以外の場合は素晴らしいツールです。
実はその機能については、 この返答 Clojure と Emacs を使用する場合のクラスパスの管理に関する質問。他の回答も興味深いかもしれません。
SLIME を使い始めたばかりの場合は、SLIME ビデオをご覧ください。 からリンクされています スライムのホームページ これは、Michiel がコメントに投稿したリンクから入手できるようになりました。とても良い紹介です。:-)
他のヒント
Leiningenをのあなたのためclasspathing心配という新しいClojureのビルドツールです。あなたは、プロジェクトのメインクラスを指定するには、プロジェクトのルートディレクトリに、単純なプロジェクトファイルを設定し、それが自動的にあなたのためのすべてのあなたのlibディレクトリ内のJARおよび負荷それらを発見します。
私は今ちょうど、コマンドラインで「レインスワンク」と入力して、スライム接続のEmacsでのM-X、およびすべてのものだけで動作します。 (これは簡単に少しのelispを自動化することができます。)
で詳細情報このブログの記事でます。
短い答え:
(load-file "full-path-to-definition")
長い答え: ここでは何のように私のブートストラッププロセスのルックスます:
は〜/ .clojure / user.clj(このファイルは自動的に実行されたときにブートスライム/ Clojureの):
(add-classpath "file://path/to/foo.jar") ; Include these jars in the classpath
(add-classpath "file://path/to/foo2.jar")
(load-file "file://workspace/bootstrap.clj")
:
(compile 'my.package)
パッケージファイル(複数可)は、/workspace/my/package.clj
でありますでpackage.clj:
(ns my.package)
(defn foo [] (+ 2 2))
Emacsに、SLIMEとスワンク-のClojureを使用しているとき、私が見つけた最善のアプローチは、(Emacs Lispに)関数スワンク - Clojureのプロジェクトを使用することです。そのドキュメントから:
(スワンク-のClojureプロジェクトのPATH)
は、セットアップClojureのプロジェクトのクラスパスとは、新しいSLIMEセッションを開始します。 キルあれば、SLIMEセッションを既存ます。
あなたは、「M-Xスワンク - Clojureのプロジェクト」を行う場合、それはあなたのプロジェクトディレクトリのための対話的に要求されます。あなたはそれを選択したら、すべてのlibサブディレクトリ内のjarファイルだけでなく、あなたのクラスパスに追加されたフォルダsrcとクラス。また、他の言葉で、Mavenの/ LEINディレクトリ構造を尊重します:それは通常は動作します。
あなたが何かを変更した場合、例えばもう一度スワンク、Clojureのプロジェクトを行う、新しいjarファイルを追加します。