Как настроить Aquamacs для разработки на Clojure?
Вопрос
Я несколько раз пытался перейти на Emacs для разработки на Clojure, следуя множеству постов в блогах, скринкастам и руководствам, но где-то по пути всегда что-то шло не так — неработающие сочетания клавиш, несовместимые версии и т. д., и я обнаружил, что возвращаюсь к Виму.Но я знаю, что хочу Paredit и SLIME.
Итак, я попробую еще раз, на этот раз при поддержке мощного сообщества Stack Overflow™.
Я надеюсь, что ответ на этот вопрос останется актуальным и может послужить ориентиром для таких нерешительных новообращенных, как я.
Я бы хотел:
- Последняя стабильная версия Clojure.
- Aquamacs (если он достаточно хорош для Рича Хики, то и для меня), последняя версия
- Режим Clojure
- СЛИЗЬ/СВАНК
- Паредит
- Что-нибудь еще незаменимое?
Пошаговые инструкции по установке вышеперечисленного были бы отличными — желательно в формате сценария оболочки.Мне также хотелось бы получить несколько советов о том, как начать работу с наиболее распространенными действиями, связанными с Clojure (включая сочетания клавиш), включая ссылки на документацию и шпаргалки.
Решение
Вот шаги, которые я предпринял, чтобы настроить их без использования ELPA.Надеюсь это поможет.
Загрузите SLIME, используя MacPorts
sudo port -v install slime
Получить паредит
curl -O http://mumble.net/~campbell/emacs/paredit.el
Получить Clojure и Clojure-contrib
- Либо используя MacPorts
sudo port -v install clojure clojure-contrib
- Или загрузите напрямую
curl -O http://build.clojure.org/snapshots/org/clojure/clojure/1.1.0-master-SNAPSHOT/clojure-1.1.0-master-20091202.150145-1.jar curl -O http://build.clojure.org/snapshots/org/clojure/clojure-contrib/1.1.0-master-SNAPSHOT/clojure-contrib-1.1.0-master-20091212.205045-1.jar
Получить Clojure-mode и Swank-Clojure (сторона Emacs)
git clone http://github.com/technomancy/clojure-mode.git
git clone http://github.com/technomancy/swank-clojure.git
Получите swan-clojure (сторона Clojure)
- Либо загрузка предварительно созданного файла jar
curl -O http://repo.technomancy.us/swank-clojure-1.1.0.jar
- Или сборка из исходного кода (при условии, что lein установлен)
cd path/to/dir/swank-clojure lein jar
Поместите файлы Clojure, Clojure-contrib и swank-clojure .jar в ~/.swank-clojure или ~/.clojure (места по умолчанию, где swank-clojure.el ищет их).
Добавьте либо в ~/.emacs, либо в ~/Library/Preferences/Aquamacs Emacs/customization.el. (измените пути в соответствии с вашими настройками)
(add-to-list 'load-path "/opt/local/share/emacs/site-lisp/slime/") (add-to-list 'load-path "/opt/local/share/emacs/site-lisp/slime/contrib/") ;; Change these paths to match your settings (add-to-list 'load-path "path/to/dir/clojure-mode/") (add-to-list 'load-path "path/to/dir/swank-clojure/") (add-to-list 'load-path "path/to/dir/paredit/") ;; Customize swank-clojure start-up to reflect possible classpath changes ;; M-x ielm `slime-lisp-implementations RET or see `swank-clojure.el' for more info (defadvice slime-read-interactive-args (before add-clojure) (require 'assoc) (aput 'slime-lisp-implementations 'clojure (list (swank-clojure-cmd) :init 'swank-clojure-init))) (require 'slime) (require 'paredit) (require 'clojure-mode) (require 'swank-clojure) (eval-after-load "slime" '(progn ;; "Extra" features (contrib) (slime-setup '(slime-repl slime-banner slime-highlight-edits slime-fuzzy)) (setq ;; Use UTF-8 coding slime-net-coding-system 'utf-8-unix ;; Use fuzzy completion (M-Tab) slime-complete-symbol-function 'slime-fuzzy-complete-symbol) ;; Use parentheses editting mode paredit (defun paredit-mode-enable () (paredit-mode 1)) (add-hook 'slime-mode-hook 'paredit-mode-enable) (add-hook 'slime-repl-mode-hook 'paredit-mode-enable))) ;; By default inputs and results have the same color ;; Customize result color to differentiate them ;; Look for `defface' in `slime-repl.el' if you want to further customize (custom-set-faces '(slime-repl-result-face ((t (:foreground "LightGreen"))))) (eval-after-load "swank-clojure" '(progn ;; Make REPL more friendly to Clojure (ELPA does not include this?) ;; The function is defined in swank-clojure.el but not used?!? (add-hook 'slime-repl-mode-hook 'swank-clojure-slime-repl-modify-syntax t) ;; Add classpath for Incanter (just an example) ;; The preferred way to set classpath is to use swank-clojure-project (add-to-list 'swank-clojure-classpath "path/to/incanter/modules/incanter-app/target/*")))
Другие советы
Загрузите и установите Aquamacs.
Загрузите и установите ELPA (http://tromey.com/elpa/install.html)
Do M-x package-list-packages
Отметьте строки «clojure-mode» и «swank-clojure» буквой «I», затем нажмите «X».
Сделанный.
Вот сообщение в блоге, в котором упоминается Aquamacs: Настройка Clojure, Incanter, Emacs, Slime, Swank и Paredit
Кажется, существует довольно простой способ настроить Aquamacs 2.4 и SLIME для Clojure:
- Установить Кложур
- Установите Aquamacs 2.4 отсюда "http://aquamacs.org/"
- Установите пакет Aquamacs SLIME отсюда «http://aquamacs.org/download.shtml».
Этот не будет работать так...
- Загрузите последнюю версию SLIME отсюда «http://common-lisp.net/project/slime/#downloading» — вам нужен tar-файл моментального снимка CVS.
- Распаковать файл слизи и скопируйте его в/библиотеку/поддержку приложения/Aquamacs Emacs/Slime
Кажется, у меня все в порядке...
Я знаю, что ОП хочет использовать Emacs для разработки Clojure.Я сам фанат emacs, но нашел использование Enclojure (http://www.enclojure.org/home), чтобы стать отличным способом быстро начать работу со взломом Clojure.
Сегодня я бы направился в https://github.com/tehcurtis/aquamacs-emacs-starter-kit/network
это для Ruby и сначала не будет работать, но все равно.git clone и скопируйте все в Preferences.el согласно readme.Устраните неполадку, отредактировав ~/Library/Preferences/Aquamacs Emacs/ и закомментировав почти все в файле mode.el (у меня в файле осталось только (setq-default indent-tabs-mode nil))
Хорошая часть:вы установили elpa-package-manager без хлопот
сейчас:использовать
M-x package-list-packages
идти к
clojure-mode (press I)
slime (press I)
slime-repl (press I)
Press X to install
сделанный.
Предостережение:Clojure-Jack-In не работает, поэтому вам придется
M-x slime-connect
и дважды нажмите Enter и y, чтобы начать.