9

私はclojure-swankとslimeでemacsを使用しており、開発環境を設定しようとしています。そして、私は問題に遭遇しました。repl を開始すると、不明なディレクトリで立ち往生し、名前空間をロードできなくなります。clojure repl が適切なファイルを見つけられないためです。

現在のディレクトリを変更する方法を知っている人はいますか?

PS: 私は emacs とスライムを使い始めたばかりなので初心者です。

4

4 に答える 4

6

スライムの現在のディレクトリの概念を変更したい場合は、,cd<CR>( <CR>= Enter) を押してパスを入力します。

ただし、これは実際には問題の適切な解決策ではありません。適切な解決策には、できるようにクラスパスを設定することが含まれます ('your.namespace を使用)。この目的のために、クラスパスの適切な設定に関する質問に対して私が提供したこの非常に長い回答が役立つかどうか疑問に思います... :-)

ちなみに、add-classpath現在非推奨としてマークされており、そもそも信頼することを意図したものではなかったため、 を含むソリューションには多少反対しています...一方で、それは確かに完全にうまく機能する可能性があり、ちょうど知っておく価値があります場合によっては、簡単なクラスパス インジェクション ギミックとして役立つかもしれません。

clojure-project本当に素敵な SLIME ベースの開発環境が必要な場合は、関連するすべての変数を設定し、プロジェクトのメイン ディレクトリで SLIME を起動する、Phil Hagelberg によるとても素敵な elisp 関数を紹介したいと思います(インタラクティブに提供されます)。 )。これは Clojure グループに投稿されています。実際、メール アーカイブのそのメッセージのコピーへのリンクがここにあります。修正が必要な点が 1 つあります。swank-clojure-jar-pathへのフル パスを設定する必要がありますclojure.jar。そうでなければ、それは素晴らしいツールです。

実際、Clojure と Emacs を使用する場合のクラスパスの管理に関する質問への回答で、その機能について言及しました。他の答えも興味深いかもしれません。

また、SLIME を使い始めたばかりの場合は、SLIME のホームページからリンクされている SLIME ビデオをご覧ください。このビデオは、Michiel がコメントに投稿したリンクの下で利用できるようになりました。とても良い紹介です。:-)

于 2009-12-26T18:02:30.523 に答える
6

Leiningenは、クラスパスを心配する新しい Clojure ビルド ツールです。プロジェクトのルート ディレクトリに単純なプロジェクト ファイルをセットアップして、プロジェクトのメイン クラスを指定すると、lib ディレクトリ内のすべての JAR が自動的に検出され、ロードされます。

コマンド ラインで「lein swank」と入力し、Emacs で Mx slime-connect を入力すると、すべてが機能します。(これはちょっとした Elisp で簡単に自動化できます。)

詳細については、このブログ投稿をご覧ください。

于 2009-12-27T22:20:05.587 に答える
4

簡潔な答え:
(load-file "full-path-to-definition")

長い答え: 私のブートストラップ プロセスは次のようになります。

~/.clojure/user.clj (このファイルは、slime/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")

bootstrap.clj で:
(compile 'my.package)

パッケージ ファイルは /workspace/my/package.clj にあります

package.clj で:
(ns my.package)
(defn foo [] (+ 2 2))

于 2009-12-26T17:01:12.957 に答える
1

Emacs、SLIME、および swank-clojure を使用するときに私が見つけた最良の方法は、(Emacs Lisp) 関数 swank-clojure-project を使用することです。そのドキュメントから:

(swank-clojure-project PATH)

clojure プロジェクトのクラスパスをセットアップし、新しい SLIME セッションを開始します。既存の SLIME セッションがあれば、それを強制終了します。

「Mx swank-clojure-project」を実行すると、インタラクティブにプロジェクト ディレクトリを指定するように求められます。選択すると、lib サブディレクトリ内のすべての jar と、src および classes フォルダーがクラスパスに追加されます。また、Maven/lein ディレクトリ構造も尊重します。つまり、通常はそのまま機能します。

新しい jar ファイルを追加するなど、何かを変更した場合は、単に swank-clojure-project をもう一度実行してください。

于 2010-01-01T17:57:22.530 に答える