3

新しいemacsのインストールをセットアップし、ELPAをインストールし、ELPAを使用してswank-clojureをインストールしました。Clojure 1.2 がリリースされましたが、「Mx スライム」を実行すると、Clojure 1.2 ではなく 1.1 がダウンロードされました。

1.2 が利用可能になったので、それを使用するにはどうすればよいですか? 手動で行う必要がありますか? スライム/スワンクが 1.2 を使用するように更新されるまで待つ必要がありますか?

更新: leiningen を使用するための推奨事項に感謝しますが、私が求めているのは、emacs が REPL 自体を起動することです。この問題は、ELPA の swank-clojure パッケージが更新されていないために発生していますか?

4

4 に答える 4

5

Leiningen 1.3を使用すると、スタンドアロンのスワンクセッションを簡単に作成できます。

$ lein install swank-clojure 1.3.0-SNAPSHOT
$ ~/.lein/bin/swank-clojure

$ PATHに〜/ .lein / binを追加すると、これが簡単になります。

次にEmacsの内部:

M-x slime-connect

プロジェクトディレクトリ内にいる場合、Emacs内からswankを起動するには、 Mxlein-swankを使用できます。ただし、swank-clojure.elを介したClojureおよびその他の依存関係の自動ダウンロードとインストールはエラーが発生しやすく、非推奨です。

于 2010-08-21T00:19:58.097 に答える
3

あなたが説明したようなセットアップでは、M-x slimeすべてがクラスパスに配置される~/.clojureと思います。変数~/.swank-clojureを設定することで、これをカスタマイズできます (使用のみにカスタマイズしました。ここに、1 回限りの実験的な REPL を起動するのに役立つ基本的な jar セットを配置します。swank-clojure-classpath~/.clojure

クラスパスにさらに多くのものが必要になるとすぐに、上記は不十分です。これらのより複雑なケースを管理するには、次の 2 つのオプションがあります。

オプション 1: Swank を起動して接続する

最も簡単な方法は、Leiningenを使用することです。これをあなたの中に入れてくださいproject.clj

(defproject repl-base "1.0.0-SNAPSHOT"
  :description "A project to start Swank in."
  :dependencies [[org.clojure/clojure "1.2.0"]
                 [org.clojure/clojure-contrib "1.2.0"]]
  :dev-dependencies [[swank-clojure "1.2.1"]])

次にlein swank、プロジェクトのディレクトリで使用してswankサーバーを起動し、使用M-x slime-connectしてEmacs内から接続します。

別の可能性として、David Edgar Liebke のcljrがスタンドアロンの Swank インスタンスを起動するようです。詳細については、README を参照してください。

オプション 2: Emacs 内から Swank を起動する

正直なところ、私は自分自身で Emacs 内から Swank を起動する傾向があります。セットアップが少し面倒かもしれませんが (そのため、最初はお勧めできない可能性があります)、後で非常に便利です。Leiningen スタイルのプロジェクト用の適切なクラスパス構成を備えた Clojure 固有の Swank インスタンスを起動するために使用する関数の 1 つのバージョンについては、以前の質問に対する私の回答を参照してください。

于 2010-08-20T23:16:17.763 に答える
1

leiningen を使用して、emacs スライムを clojure インスタンスに接続します。プロジェクトでは、常に leiningen が適切にクラスパスに配置するいくつかの依存関係が発生します。

小さな clojure ファイルを使用して依存関係を記述します。

(defproject myprojecy "0.1.0-SNAPSHOT"
   :description "A project."
   :dependencies [[org.clojure/clojure "1.2.0-beta1"]
                 [org.clojure/clojure-contrib "1.2.0-beta1"]]
   :dev-dependencies [[swank-clojure "1.2.1"]])

バージョンの変更は、エディターで数回キーを押すだけであることがわかります。Leiningen は依存関係を 'net からダウンロードします。これにより、プロジェクトは非常に小さく、高速にバージョン管理されます。

lein swank を実行すると、プログラムと swank の repl が開始されます。

ptimac:cljhack pti$ lein swank
user=> Connection opened on local port  4005
#<ServerSocket ServerSocket[addr=localhost/127.0.0.1,port=0,localport=4005]>

Mx slime-connect を使用して emacs に接続し、デフォルトを受け入れることができるようになりました。

于 2010-08-20T23:16:28.420 に答える
0

Mx slime を実行する前に swank-clojure-classpath 変数を設定するだけです。

c:\jars の下に clojure.jar、clojure-contrib.jar、swank-clojure.jar があるとします。

これをスクラッチ バッファに貼り付けます

(setq swank-clojure-classpath '("c:/jars/clojure.jar" "c:/jars/cloure-contrib.jar" 
"c:/jars/swank-clojure.jar"))

Cx Ce と Mx スライム を叩いてください。

詳細についてはチェックアウト

https://github.com/jochu/swank-clojure/blob/master/swank-clojure.el#L32-34

http://en.wikibooks.org/wiki/Clojure_Programming/FAQ#Where_does_swank-clojure_.28SLIME.29_look_for_Clojure.27s_jars.3F

于 2011-01-23T09:48:26.773 に答える