6

短いバージョン:leinswankを使用してswankサーバーを起動するときにMxslime-connectまたはMxclojure-jack-inを実行するとエラーが発生します。

Ubuntu10.10でemacs24.0.50.1を使用しています。ELPAのemacsに次のパッケージをインストールしました:clojure-mode、paredit、slime、slime-repl

githubからleiningenをインストールしてクラスパスに追加し、実行しました lein plugin install swank-clojure 1.3.3。その後、新しいディレクトリ〜/ tmp /を作成し、そこにcdして実行しました。 これで、lein new test-projectすべてが正常にセットアップされたようです。次に、emacsで/tmp/new-project/project.cljを開き、次のように変更しました。

(defproject test-project "1.0.0-SNAPSHOT"
:description "Test Project"
:dependencies [[org.clojure/clojure "1.2.1"]
               [org.clojure/clojure-contrib "1.2.0"]]
:dev-dependencies [[swank-clojure "1.3.3"]])

その後、/ tmp / new-projectフォルダーに戻り、実行lein depslein swankて依存関係をダウンロードし、出力を提供するswankサーバーを起動します。

Connection opened on local port 4005.

emacsに戻ると、swankサーバーに接続するのに問題があります。core.cljファイルを開いて実行しようとしましM-x slime-connectたが、エラーが発生します。

Symbol's function definition is void: define-slime-contrib

これにより、swankサーバーが実行されていないか、サーバーを表示するために実行する必要のある構成がいくつかあると思います。また、(同じファイルを開き、project.cljを開いて)M-x clojure-jack-inプロジェクトフォルダーでclojure REPLを開始しようとすると思いますが、次のようになります。

Debugger entered--Lisp error: (error "Could not start swank server: sh: lein: not found
")
signal(error ("Could not start swank server: sh: lein: not found\n"))
error("Could not start swank server: %s" "sh: lein: not found\n")
clojure-jack-in-sentinel(#<process swank> "exited abnormally with code 127\n")

私はemacsパッケージとleinセットアップについてhttp://matthias-schneider.org/docs/clojure-setup/からの指示に従い、 http: //riddell.us/ClojureSwankLeiningenWithEmacsOnLinux.htmlからのテスト構成の指示に従い始めました。 Mxスライム接続でREPLを開くのに問題がありました。

更新

〜/ tmp / test-projectを削除し、emacsと/.emacs.d/elpa/パッケージをアンインストールし、emacsを再インストールし、clojure-modeとpareditパッケージを再インストールし、〜/.leinを/binにコピーして、パスの問題がないことを確認しました(以前は/.leinまたは/.lein/binをパスに含める必要があるかどうかわからない)。/.lein/bin/swank-clojure実行してからemacsを開き、project.cljを開いて試してみましM-x slime-connectた。これにより、ホスト(ローカルのデフォルト)、ポート(4005のデフォルト)が要求され、swankに接続すると、swankとslimeのバージョンが異なる(yまたはn)yの場合、ミニバッファはを与えerror in process filter: Lisp connection closed unexpectedlyます。実行したターミナルで/.lein/bin/swank-clojure、次のJavaエラーが表示されます。

exception in read loop
java.lang.NumberFormatException: For input string: "    a6"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:470)
at swank.core.protocol$read_swank_message.invoke(protocol.clj:41)
at swank.core.connection$read_from_connection.invoke(connection.clj:59)
at swank.core$read_loop.invoke(core.clj:337)
at swank.swank$connection_serve$fn__1486$fn__1487.invoke(swank.clj:32)
at clojure.lang.AFn.applyToHelper(AFn.java:159)
at clojure.lang.AFn.applyTo(AFn.java:151)
at clojure.core$apply.invoke(core.clj:540)
at swank.swank$connection_serve$fn__1486.doInvoke(swank.clj:29)
at clojure.lang.RestFn.invoke(RestFn.java:397)
at clojure.lang.AFn.run(AFn.java:24)
at java.lang.Thread.run(Thread.java:636)

更新: 解決しました。emacsをアンインストールして、/ elpa /内のパッケージだけでなく、/。emacs.d/をすべて削除する必要がありました。再インストールした後、私はclojure-modeパッケージのみを取得し、slimeまたはslime-replは取得しませんでした。これで、接続しM-x clojure-jack-inて作業を行う準備ができました。

4

5 に答える 5

2

SlimeとSlime-replをインストールする必要はありません。これらはleinのプラグインに埋め込まれています(jar内を参照:swank-clojure-1.4.0-SNAPSHOT.jar \ swank \ payload)。clojureモードだけをインストールする必要があります。

また、「再インストール」するときは、$ HOMEディレクトリの隠しフォルダ.emacs.dも削除することを忘れないでください。そうしないと、以前にダウンロードしたEmacsプラグインが保持されます。

最後に、slime-connectではなくclojure-jack-inを好みます-slime-connectがあるだけで、Emacs内にSLIMEが残っているので、削除しませんでした。

于 2011-10-25T03:18:01.073 に答える
2

ほとんどの古い手順が適切でなかったため、オートコンプリートとドキュメントポップアップを備えたEmacs+nREPLクライアントをセットアップするための初心者向けガイドを作成しました。ここで入手できます。新規参入者に役立つかもしれません。

于 2012-07-30T19:39:28.007 に答える
1

leinswankプラグインをインストールする必要はありません。project.cljファイルとlein swank&だけに依存関係を追加できますM-x slime-connect

swank-clojure "1.2.1"を試してみてください、それは私のために働きます。

于 2011-10-23T06:17:24.040 に答える
0

次のことを試してみてください。これは、UbuntuのEmacs24で機能します。

  1. Leiningenをインストールします。インストールするディレクトリが!にあることを確認してleinください$PATH
  2. swank-clojureプラグインをインストールします。

    lein plugin install swank-clojure 1.3.3

  3. を使用して新しいプロジェクトを作成しますlein newswank-clojureに追加しないでください:dev-dependencies。(実際に必要なのは、プラグインまたはのエントリのいずれかだけです:dev-dependencies。)

  4. Emacsを起動し、たとえば次のように「表示」できることを確認しleinます$PATH

    PATH=$PATH:/path-to/dir-where/lein-is emacs

    (このコマンドを使用して試してみてください。永続的に使用するには、ファイル内のを更新する$PATH.profileleinすでににある場所にインストールする必要があります$PATH。標準のUbuntuインストールでは、に~/binある必要があり$PATHます。)

  5. プロジェクトからファイルを開きます。たとえばproject.clj、を実行しますM-x clojure-jack-in。これにより、Swankサーバーが起動し、SLIMEREPLがサーバーに接続されます。

于 2011-10-24T20:04:11.083 に答える
0

これは、他の誰かのclojureプロジェクトを古いバージョンからクローンしたときに起こりました。彼らのproject.cljには:

:dev-dependencies [[lein-clojars "0.5.0"]
                   [swank-clojure "1.2.1"]]

を使用している場合、これは正しくないと思いますM-x clojure-jack-in。これらの線を削除し、実行lein depsしてジャッキインすることは私のために働いた。

于 2012-03-29T03:34:51.523 に答える