Настройка SLIME & Inferior-Lisp для Clojure в Emacs



Слизь



Я довольно новичок в обоих Clojure & emacs, и я пытался настроить SLIME для Clojure. Официальная документация неявно предполагает, что вы знаете, что делаете с emacs. Существует не просто куча кода, который вы можете вставить в свои конфигурационные файлы. ПосколькуМеня интересует Clojure для анализа данных , я действительно не хочу иметь дело с Лейнингеном, если это вообще возможно, но мне нужна динамическая среда, которую обеспечивает slime.

У меня есть установил Clojure из git в /opt/clojure/ и clojure-contrib в /opt/clojure-contrib , и я могу получить repl. Я установил swank-clojure, clojure-mode и slime из github в `~/.bin following этот учебник. Я изменил несколько вещей вокруг, когда это не работало, добавив некоторые вещи из раздела комментариев официальной документации.



Когда я начинаю слизь с 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)


Вот ошибка, которую я получаю, когда я назовем это когда муравьи.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)


Нижняя Шепелявость



Я сделал скрипт в .bin/ под названием clj-repl, который содержит команду java для запуска repl. Я тогда м-х-переменная уступает-Lisp-программы /домашний/wdkrnls/.bin / clj-repl. Emacs жалуется на его неправильный тип.

587   2  

2 ответов:

Лучший способ использовать Clojure-это начать с установки Leiningen.

Затем установите Swank Clojure в качестве плагина Leiningen.

Далее, я бы рекомендовал удалить текущую пользовательскую установку Clojure из .emacs и установить 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-mode и slimeparedit для хорошей меры), и все остальное, что вам может понадобиться.

Это должно быть, вы все настроены и готовы использовать слизь в проектах (Leiningen) Clojure. И несмотря на кажущуюся сложную процедуру здесь, вы можете создать один "uberjar" из ваших проектов для развертывания на других серверах без каких-либо проблем с зависимостями.

Попробуйте метод, описанный здесь. Это займет пару минут, чтобы настроить все с нуля на чистом unix или mac box:

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

Comments

    Ничего не найдено.