簡體   English   中英

在Emacs中為Clojure設置SLIME和下Lisp

[英]Setting up SLIME & Inferior-Lisp for Clojure in Emacs

粘液

我對Clojure和emacs都很陌生,我一直在嘗試為Clojure設置SLIME。 官方文檔隱式地假設您知道使用emacs做什么。 您可以將大量代碼粘貼到配置文件中。 因為我對Clojure for Data Analysis感興趣 ,所以我真的不希望與Leiningen打交道,但我希望獲得史萊姆提供的動態環境。

我已經在/opt/clojure/從git安裝了Clojure,在/opt/clojure/ -contrib中安裝了/opt/clojure-contrib ,我可以獲得一個repl。 我按照本教程在`〜/ .bin中從github安裝了swank-clojure,clojure-mode和史萊姆。 在無法正常工作時,我通過從官方文檔的注釋部分添加了一些內容來更改了一些內容。

當我使用Mx slime開始粘液時,我會得到一個連續的Polling "/tmp/slime.14113".. (Abort with 'Mx 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/創建了一個名為clj-repl的腳本,其中包含用於啟動repl的java命令。 然后,我將Mx設置為變量下級lisp程序/home/wdkrnls/.bin/clj-repl。 Emacs抱怨類型錯誤。

使用Clojure的最佳方法是從安裝Leiningen開始。

然后安裝Swank Clojure作為Leiningen插件。

接下來,建議從.emacs剝離當前的自定義Clojure設置,並安裝ELPA ,然后在.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)

然后,運行package-list-packages並安裝clojure-modeslime (並通過paredit獲得很好的效果),以​​及可能需要的其他任何東西。

這應該使您所有人都准備好並且可以在(Leiningen)Clojure項目中使用SLIME。 盡管這里的過程看似復雜,但您仍可以從項目中創建一個“ uberjar”,以將其部署在其他服務器上,而無需擔心任何依賴。

嘗試這里詳細介紹的方法。 在干凈的Unix或Mac機器上從零開始設置所有內容需要花費幾分鍾:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM