2009-12-26 4 views
9

Я использую emacs с clojure-swank и слизью и пытаюсь установить среду разработки. И я столкнулся с проблемой. Когда я начинаю замену, я застрял в неизвестном каталоге, чтобы я не загружал свое пространство имен. Потому что clojure repl не может найти нужный файл.Clojure emacs slime + swank directory question

Кто-нибудь знает, как изменить текущий каталог?

PS: Я только начал использовать emacs и слизь, чтобы я был noob.

ответ

6

Если вы хотите изменить значение slime текущего каталога, нажмите ,cd<CR> (<CR> = Enter) и введите путь.

Однако это не совсем правильное решение проблемы. Правильное решение включает настройку пути к классам, чтобы вы могли (используйте «ваше. Пространство имен»). С этой целью мне интересно, может ли this very long answer задать вопрос о настройке пути к классу, который может быть полезен ... :-)

Кстати, я несколько возражаю против решений, связанных с add-classpath, поскольку в настоящее время это обозначено как устаревшее и на самом деле никогда не предполагалось, чтобы на него положились ... Хотя, с другой стороны, это, безусловно, может работать отлично, и это стоит знать о том, что на всякий случай это может пригодиться, поскольку быстрый и грязный ввод в класс трюк.

Теперь, если вы хотите создать отличную среду разработки на основе SLIME, я хотел бы указать вам на очень приятную функцию elisp от clojure-project Филом Хагельбергом, которая устанавливает все соответствующие переменные и запускает SLIME в главном каталоге проекта (для обеспечения интерактивности). Он был отправлен в группу Clojure, фактически here's a link в копию этого архива почтового архива. Обратите внимание, что есть одна вещь, которая нуждается в исправлении - swank-clojure-jar-path должен быть установлен на полный путь до clojure.jar. В противном случае это фантастический инструмент.

На самом деле я упомянул эту функцию в this response на вопрос об управлении маршрутом класса при использовании Clojure и Emacs. Другие ответы могут быть интересными.

И если вы только начали использовать SLIME, не смотреть слизь видео, связан с SLIME's homepage который теперь доступен под ссылкой размещенного Michiel в комментариях. Это очень хорошее введение. :-)

+0

Я собираюсь попробовать решение функции clojure-project. Но в каком файле я могу добавить код? – MrHus

+0

Ссылка на видео с домашней страницы SLIME мертва. Видео все еще можно найти здесь: http://www.guba.com/watch/3000054867 –

+0

О, я никогда не замечал ... Спасибо, Мишель. Я отредактирую соответственно. @MrHus: вам нужно добавить его к некоторому файлу, который загружается при запуске Emacs, например '~/.emacs' (on * nix) /' _emacs' (в Windows, я полагаю, вы поместили это в каталог своего профиля, например 'C: \ Documents and Settings \ yourusername \ _emacs', но я уверен, google, если это не сработает). Просто не забудьте исправить 'swank-clojure-jar-path'. Кстати, судя по тому, что вы задаете этот вопрос, вам может потребоваться найти «emacs-startter-kit» Фила Хагельберга; есть также связанный скринкаст на http://peepcode.com/. –

4

Короткий ответ:
(load-file "full-path-to-definition")

Длинный ответ: Вот что мой процесс самонастройки выглядит следующим образом:

В ~/.clojure/user.clj (этот файл запускается автоматически при загрузке слизью/Clojure):
(add-classpath "file://path/to/foo.jar") ; Include these jars in the classpath
(add-classpath "file://path/to/foo2.jar")
(load-file "file://workspace/bootstrap.clj")

В bootstrap.clj:
(compile 'my.package)

файл пакета (ов) в /workspace/my/package.clj

В package.clj:
(ns my.package)
(defn foo [] (+ 2 2))

6

Leiningen - новый инструмент сборки Clojure, который заботится о том, чтобы сослаться на вас. Вы создали простой файл проекта в корневом каталоге проекта, чтобы указать основной класс вашего проекта, и он автоматически обнаруживает все JAR в вашем каталоге lib и загружает их для вас.

Теперь я просто набираю «lein swank» в командной строке, а затем M-x slime-connect в Emacs, и все просто работает. (Это можно легко автоматизировать с помощью небольшого Elisp.)

Дополнительная информация в this blog post.

+0

Это действительно действительно хорошее решение. Теперь я могу продолжать работать с Textmate. Благодарю. – MrHus

1

Лучший подход, который я нашел при использовании Emacs, SLIME и swank-clojure, - использовать функцию (Emacs Lisp) swank-clojure-project. Из документации:

(Суонк-Clojure-проект PATH)

Установки для пути к классам проекта Clojure и начинается новый сеанс слизи. Убивает существующую сессию SLIME, если таковая имеется.

Если вы выполняете проект «M-x swank-clojure-project», он будет интерактивно запрашивать ваш каталог проекта; как только вы его выберете, все jars в подкаталоге lib, а также папка src и classes будут добавлены в ваш путь к классам. Он также будет соблюдать структуру каталогов Maven/lein, другими словами: он, как правило, просто работает.

Если вы что-то измените, например. добавьте новый файл jar, просто запустите проект swank-clojure.

 Смежные вопросы

  • Нет связанных вопросов^_^