5

スライム

私はClojureとemacsの両方にかなり慣れておらず、Clojure用にSLIMEをセットアップしようとしています。公式ドキュメントは、emacsで何をしているのかを知っていることを暗黙のうちに想定しています。構成ファイルに貼り付けることができるコードはたくさんありません。私はClojureforData Analysisに興味があるので、可能な限りLeiningenを扱いたくはありませんが、slimeが提供する動的な環境が必要です。

git in/opt/clojure/とclojure-contribinからClojureをインストールしましたが、担当者/opt/clojure-contribを取得できます。このチュートリアルに従って、githubのswank-clojure、clojure-mode、slimeを `〜/.binにインストールしました。これが機能していなかったときに、公式ドキュメントのコメントセクションからいくつかのものを追加して、いくつかの変更を加えました。

私がスライムを始めるとき、M-x slime私は継続的になりPolling "/tmp/slime.14113".. (Abort with 'M-x slime-abort-connection'.)ます。

これが私のinit-clj.elです:

;; clojure-mode
(add-to-list 'load-path "~/.bin/clojure-mode")


;; swank-clojure
(add-to-list 'load-path "~/.bin/swank-clojure")

(setq swank-clojure-jar-path "/opt/clojure/clojure.jar"
  swank-clojure-extra-classpaths (list
                  "~/.bin/swank-clojure/src/swank"
                  "/opt/clojure/clojure-contrib/target/clojure-contrib-1.2.0-SNAPSHOT.jar"))

(require 'swank-clojure)

;; slime
(eval-after-load "slime" 
  '(progn (slime-setup '(slime-repl))))

(add-to-list 'load-path "~/.bin/slime")
(require 'slime)
(eval-after-load 'slime '(setq slime-protocol-version 'ignore))
  (slime-setup '(slime-repl))
(require 'clojure-mode)
(require 'clojure-test-mode)

ants.cljが開いているときに呼び出すと、次のエラーが発生します。

(progn (load "/home/kca/.bin/slime/swank-loader.lisp" :verbose t) (funcall (read- from-string "swank-loader:init")) (funcall (read-from-string "swank:start-server") "/tmp/slime.14113" :coding-system "iso-latin-1-unix"))

Clojure 1.2.0-master-SNAPSHOT
user=> java.lang.Exception: Unable to resolve symbol: progn in this context (NO_SOURCE_FILE:1)

劣ったLisp

私は、.bin/replを開始するためのjavaコマンドを保持するclj-replというスクリプトを作成しました。次に、Mx set-variablelower-lisp-program/home/wdkrnls/.bin/clj-repl。Emacsはそのタイプが間違っていると文句を言います。

4

2 に答える 2

5

Clojure を使用する最良の方法は、まずLeiningenをインストールすることです。

次にSwank Clojureを Leiningen プラグインとしてインストールします。

次に、現在のカスタム Clojure セットアップを から削除し、 ELPA.emacsをインストールしてから、ファイルに次の初期化コードをセットアップすることをお勧めします。.emacs

;; Find this line, added by ELPA:
(require 'package)
;; and add the following expression:
(add-to-list 'package-archives
             '("marmalade" . 
               "http://marmalade-repo.org/packages/") t)
;; ... and the rest of the ELPA init code
(package-initialize)

次に、and (および適切な測定のために) を実行package-list-packagesしてインストールし、その他必要なものをすべてインストールします。clojure-modeslimeparedit

これで、(Leiningen) Clojure プロジェクトで SLIME を使用する準備が整いました。ここでの手順は一見複雑に見えますが、プロジェクトから単一の「uberjar」を作成して、依存関係の問題をまったく発生させずに他のサーバーにデプロイすることができます。

于 2011-09-01T18:42:02.100 に答える
1

こちらで詳しく説明されている方法を試してください。クリーンな unix または mac ボックスですべてを最初からセットアップするには、数分かかります。

http://www.learningclojure.com/2010/08/clojure-emacs-swank-slime-maven-maven.html

于 2011-09-11T19:47:45.060 に答える