Emacs (Cocoa Emacs) против Aquamacs для запуска Clojure в Mac OS X

До сих пор я использовал Aquamacs, и мне нужно установить и запустить Clojure с использованием SLIME. Я искал в Google способ использовать Clojure на SLIME of Aquamacs, но безуспешно.

Вопросов

  1. Можно ли установить Clojure на Aquamacs? Или вы можете догадаться, почему Clojure на Aquamacs не работает?
  2. Это нормально, что Emacs и Aquamacs не могут использовать один и тот же ELPA?
  3. Можно ли использовать ELPA для установки Conjure на Emacs / Aquamacs?
  4. Мне сказали, что можно использовать lein swank для работы в качестве сервера. Вы знаете, как это сделать?

Последовательности, которые я пробовал (и половина удалась)

Я пробовал работать с Mac OS X Emacs и, выполнив указанные действия, смог заставить его работать. Я имею в виду, что я мог бы запустить Clojure с SLIME.

Emacs для Mac OS X

Шаг 1) Установите ESK.

  • Git clone и скопируйте все файлы в каталог .emacs.d
  • Добавьте следующий код в .emacs и перезапустите
    (when
        (load
         (expand-file-name "~/.emacs.d/package.el"))
      (package-initialize))

Шаг 2) Установите с помощью ELPA

  • M-x package-list-packages для выбора пакетов
  • Install
    • clojure-mode, clojure-test-mode
    • слизь, слизь-репл
    • замораживание
  • M-x слайм для установки кложура
  • Добавьте следующий код в .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)

Аквамаки

Теперь я мог использовать 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"

ELPA

Я пытался объединить пакеты из Emacs и Aquamacs, но они не объединяются. Я подумал, что могу использовать сам ELPA, а не из ESK, чтобы сделать его общим.

Результат не был хорош, так как ELPA не могла загрузить пакет swank-conure.

Успех - Запуск Aquamacs / Clojure с lein swank.

См. это.


person prosseek    schedule 16.07.2010    source источник
comment
У меня есть emacs23.2.1 и Aquamacs 2.0, основанный на emacs23.2.1. Мне удалось заставить пакет-список-пакеты нормально работать на обоих. ELPA смогла увидеть, что оба emacsen использовали ERC 5.2 и несколько других пакетов. Если это то, что вы имели в виду, говоря об использовании одного и того же ELPA, я думаю, это возможно.   -  person vpit3833    schedule 16.07.2010
comment
@ vpit3833: ELPA является частью ESK и ESK для Aquamacs. Когда я сначала устанавливаю некоторые пакеты с помощью ESK / ELPA, а затем запускаю Aquamacs, кажется, что файл pacakage.el изменен так, что emacs не может его прочитать. Исходный (загруженный) ELPA должен использоваться как emacs / Aquamacs, но я не мог его протестировать, поскольку сам ELPA не работает на моей машине, как я объяснил.   -  person prosseek    schedule 16.07.2010
comment
Я бы порекомендовал разместить ваш раздел вопросов наверху, прежде чем вы дадите описание того, что вы пробовали до сих пор. Это помогает читателям сосредоточиться на том, что вы на самом деле пытаетесь сделать, а не пытаться разобрать это на основе вашего описания шагов.   -  person A. Levy    schedule 21.07.2010


Ответы (3)


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

person Brandon Henry    schedule 27.07.2010
comment
Я установил leiningen и смог запустить lein swank. С помощью «M-x slime-connect» я мог видеть приглашение «пользователь› », но оно не оценивает уравнение типа« (+ 3 4) ». Он просто ничего не возвращает. - person prosseek; 27.07.2010
comment
Хм. Мне не нужно было добавлять код Lisp в мой файл конфигурации emacs, когда я использовал ESK. возможно, что-то, что вы там сделали, вызывает проблему. - person Brandon Henry; 27.07.2010

Я нашел это Самая простая установка на последнюю версию всего. Вот краткое изложение того, где я предполагаю, что вы установили 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

Теперь вы находитесь в буфере слизи с clojure и загруженными зависимостями для вашего проекта.

person jshen    schedule 07.10.2011

Пол Барри читает лекцию о том, как использовать 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 в Aquamacs.

person prosseek    schedule 27.07.2010