Как настроить Aquamacs для разработки Clojure? - PullRequest
31 голосов
/ 23 января 2010

Я несколько раз пытался перейти на Emacs для разработки на Clojure, следуя различным постам в блогах, скринкастам и учебным пособиям, но где-то на этом пути всегда что-то не получалось - сочетания клавиш не работали, несовместимые версии и т. Д., И Я обнаружил, что карабкаюсь обратно к Вим. Но я знаю, что хочу Paredit и SLIME.

Итак, я собираюсь попробовать еще раз, на этот раз при поддержке мощного сообщества StackOverflow ™.

Я надеюсь, что ответ на этот вопрос останется актуальным и может служить справочным материалом для предварительных обращенных, таких как я.

Что бы я хотел: - Последний стабильный выпуск Clojure - Aquamacs (если он достаточно хорош для Rich Hickey, то достаточно для меня), последняя версия - Clojure Mode - SLIME / SWANK - Паредит - Что-нибудь еще, что необходимо?

Пошаговые инструкции по установке вышеупомянутого будут отличными - желательно в формате сценария оболочки. Мне также хотелось бы получить несколько советов о том, как начать работу с наиболее распространенными действиями, связанными с Clojure (включая привязки клавиш), включая ссылки на документацию и чит-листы.

Ответы [ 6 ]

7 голосов
/ 02 февраля 2010

Это шаги, которые я предпринял, чтобы настроить их без использования ELPA. Надеюсь, это поможет.

Получить SLIME с помощью MacPorts

sudo port -v install slime

Get Paredit

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

Get swank-clojure (Clojure side)

  • Либо загрузка готового файла 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/*")))
5 голосов
/ 24 января 2010

Вот сообщение в блоге, в котором упоминается Aquamacs: Настройка Clojure, Incanter, Emacs, Slime, Swank и Paredit

5 голосов
/ 23 января 2010

Загрузите и установите Aquamacs.

Скачать и установить ELPA (http://tromey.com/elpa/install.html)

У M-x пакет-список-пакетов

Пометьте строки, называемые «clojure-mode» и «swank-clojure», с помощью «I», затем нажмите «X».

Готово.

1 голос
/ 26 июня 2012

Кажется, есть довольно простой способ настроить Aquamacs 2.4 и SLIME для clojure:

  1. Установить Clojure
  2. Установите Aquamacs 2.4 отсюда "http://aquamacs.org/"
  3. Установите пакет Aquamacs SLIME отсюда "http://aquamacs.org/download.shtml"

Это не будет работать , поэтому ...

  1. Получите последнюю версию SLIME здесь "http://common -lisp.net / project / slime / # download" - вам нужен tar-файл снимка CVS
  2. Распакуйте файл SLIME tar и скопируйте его в / Библиотека / Поддержка приложений / Aquamacs Emacs / SLIME

Кажется, у меня все в порядке ...

0 голосов
/ 16 февраля 2012

Сегодня я бы отправился на https://github.com/tehcurtis/aquamacs-emacs-starter-kit/network

это для рубина и сначала не будет работать, но все равно. git clone и скопируйте вещи в Preferences.el в соответствии с readme. Исправьте нарушение, отредактировав ~ / Library / Preferences / Aquamacs Emacs / и закомментировав почти все в modes.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

и дважды нажмите клавишу ввода, чтобы начать y.

0 голосов
/ 02 февраля 2010

Я знаю, что ОП хочет использовать Emacs для Clojure dev. Я сам фанат emacs, но я обнаружил, что использование Enclojure (http://www.enclojure.org/home) - отличный способ быстро приступить к взлому Clojure.

...