Слизь Clojure emacs + шикарный вопрос о каталоге

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

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

PS: я только что начал использовать emacs и слизь, таким образом, я - новичок.

9
задан MrHus 26 December 2009 в 14:49
поделиться

4 ответа

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

Однако, на самом деле это не является правильным решением проблемы. Правильное решение заключается в том, чтобы настроить путь к клас-спату так, чтобы вы могли (использовать 'your.namespace'). С этой целью, мне интересно, может ли этот очень длинный ответ, который я дал на вопрос о правильной настройке classpath, быть полезным... :-)

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

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

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

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

6
ответ дан 4 December 2019 в 12:18
поделиться

Краткий ответ:
(загрузить файл «полный путь-определение»)

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

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

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

Файл (ы) пакета находится по адресу /workspace/my/package.clj

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

4
ответ дан 4 December 2019 в 12:18
поделиться

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

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

Больше информации в этом посте блога.

.
6
ответ дан 4 December 2019 в 12:18
поделиться

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

(swank-clojure-project PATH)

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

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

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

1
ответ дан 4 December 2019 в 12:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: