Emacs (Cocoa Emacs) vs Aquamacs для запуска Clojure в Mac OS X
Я использовал Aquamacs, и мне нужно установить и запустить Clojure, используя SLIME. Я googled, чтобы получить способ использовать Clojure в SLIME Aquamacs, но безуспешно.
Вопросы
- Можно ли установить Clojure на Aquamacs? Или, можете ли вы догадаться, почему Clojure на Aquamacs не работает?
- Нормально ли, что Emacs и Aquamacs не могут использовать один и тот же ELPA?
- Можно ли использовать ELPA для установки Conjure на Emacs/Aquamacs?
- Мне сказали, что можно использовать "lein swank" для запуска в качестве сервера, знаете ли вы, как это сделать?
Последовательности, которые я пробовал (и наполовину преуспел)
Я попробовал с Mac OS X Emacs и выполнив шаги, которые я мог бы сделать, чтобы это сработало. Я имею в виду, я мог бы запустить Clojure с помощью SLIME.
Emacs для Mac OS X
Шаг 1) Установите ESK.
- Git клонировать и копировать все файлы в каталог
.emacs.d
- Добавьте следующий код в
.emacs
и перезапустите
(when
(load
(expand-file-name "~/.emacs.d/package.el"))
(package-initialize))
Шаг2) Установите с помощью ELPA
- M-x package-list-packages для выбора пакетов
- Установить
- clojure -mode, clojure -test-mode
- слизь, slime-repl
- swank- clojure
- M-x slime для установки clojure
- Добавьте следующий код в
.emacs
и перезапустите
;; clojure mode
(add-to-list 'load-path "/Users/smcho/.emacs.d/elpa/clojure-mode-1.7.1")
(require 'clojure-mode-autoloads)
(add-to-list 'load-path "/Users/smcho/.emacs.d/elpa/clojure-test-mode-1.4")
(require 'clojure-test-mode-autoloads)
;; slime
;(setq inferior-lisp-program "/Users/smcho/bin/clojure")
(add-to-list 'load-path "/Users/smcho/.emacs.d/elpa/slime-20100404")
(require 'slime-autoloads)
(add-to-list 'load-path "/Users/smcho/.emacs.d/elpa/slime-repl-20100404")
(require 'slime-repl-autoloads)
;; swank-clojure
(add-to-list 'load-path "/Users/smcho/.emacs.d/elpa/swank-clojure-1.1.0")
(require 'slime-repl-autoloads)
Aquamacs
Теперь я мог использовать Clojure в Emacs, я попробовал тот же (или очень похожий) метод для запуска Clojure в Aquamacs еще раз.
Шаг 1) Установите ESK для Aquamacs
- Скопируйте файлы в ~/Library/Preference/Aquamacs Emacs
- Измените "~/Library/Preferences/Aquamacs Emacs/Preferences.el", чтобы добавить следующие
(setq kitfiles-dir (concat (file-name-directory
(or (buffer-file-name) load-file-name)) "/aquamacs-emacs-starter-kit"))
; set up our various directories to load
(add-to-list 'load-path kitfiles-dir)
(require 'init)
Шаг 2) * Следуйте тем же шагам, что и раньше, чтобы установить все (одинаковые) пакеты, но "M-x slime" дает мне следующее сообщение об ошибке. "Определение функции символа пустое: define-slime-contrib"
ЭЛПА
Я попытался объединить пакеты с Emacs и Aquamacs, но они не сочетаются. Я думал, что могу использовать ELPA сам, а не из ESK, чтобы сделать его общим.
Результат оказался неудачным, поскольку ELPA не смог загрузить пакет swank-conjure.
Успех - запуск Aquamacs/ Clojure с помощью "lein swank".
Обратитесь к этим.
Ответы
Ответ 1
Aquamacs определенно работает с Clojure, так как автор Clojure использует его. Тем не менее, я использую Emacs, и после того, как вы выполните шаги, описанные выше в разделе Emacs, я рекомендую проверить labrepl,
http://github.com/relevance/labrepl
Если у вас нет leiningen, ссылка для его установки и установки находится в инструкциях файла readme labrepl. Мне было очень полезно, когда я впервые научился настраивать среду для программирования Clojure. Вы можете разделить файл project.clj
в labrepl и собрать вместе, как это работает довольно легко. Не говоря уже о уроках и обучении в встроенном веб-приложении, которое поставляется с labrepl.
Если вы хотите использовать lein swank:
Убедитесь, что у вас установлен leiningen. В ваших зависимостях project.clj dev вы хотите иметь такую запись:
[leiningen/lein-swank "1.1.0"]
http://clojars.org/leiningen/lein-swank
Затем, после выполнения lein deps
, вы сможете запустить lein swank
, а затем из Emacs запустите M-x slime-connect
и просто нажмите клавишу ввода по умолчанию.
Если вы собираетесь пройти этот маршрут, вот ссылка непосредственно на leiningen, чтобы вы могли пропустить репозиторий labrepl: http://github.com/technomancy/leiningen
Ответ 2
Я нашел эту самую легкую настройку для последней версии всего. Вот краткое резюме, где я предполагаю, что у вас установлен leiningen.
Установите плагин swank-clojure
$ lein plugin install swank-clojure 1.3.2
Создайте проект clojure
$ lein new test-project
$ cd test-project
$ lein deps
Затем откройте один из clojure файлов из вашего проекта в emacs и запустите clojure -jack-in
M-x clojure-jack-in
Теперь вы находитесь в буфере slime с clojure и загружены зависимости для вашего проекта.
Ответ 3
Пол Барри дает лекцию, как использовать Aquamacs и Clojure.
Это просто, так как вы можете добавить этот код в файл .emacs
,
(add-to-list 'load-path "~/clojure/clojure-mode")
(setq inferior-lisp-program "/Users/smcho/bin/clj")
(require 'clojure-mode)
(setq auto-mode-alist
(cons '("\\.clj\\'" . clojure-mode)
auto-mode-alist))
(add-hook 'clojure-mode-hook
(lambda ()
(define-key clojure-mode-map "\C-c\C-e" 'lisp-eval-last-sexp)))
Я мог бы запустить "M-x clojure -mode" и C-c C-z для REPL.
И как просили и отвечали в Запуск Clojure и других Lisp одновременно в Emacs, я мог бы использовать как Clojure/Lisp на Аквамаках.