Emacs (Cocma Emacs) против Aquamacs для запуска Clojure в Mac OS X - PullRequest
12 голосов
/ 16 июля 2010

Я использовал Aquamacs , и мне нужно установить и запустить Clojure , используя SLIME . Я погуглил, чтобы найти способ использовать Clojure на SLIME 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))

Step2) Установка с использованием ELPA

  • M-x пакет-список-пакетов для выбора пакетов
  • Установить
    • clojure-mode, clojure-test-mode
    • слизь, слизь-репл
    • Суонк-Clojure
  • M-x слизь для установки 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»

ELPA

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

Результат не был хорошим, так как ELPA не смогла загрузить пакет «Свон-заклинание».

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

Пожалуйста, обратитесь к это .

Ответы [ 3 ]

5 голосов
/ 27 июля 2010

Aquamacs наиболее определенно работает с Clojure, поскольку автор Clojure использует его. Однако я использую Emacs, и после того, как вы выполните описанные выше шаги в разделе Emacs, я рекомендую проверить labrepl,

http://github.com/relevance/labrepl

Если у вас нет leiningen, ссылка для его получения и установки приведена в инструкциях к файлу labrepl readme. Я нашел это чрезвычайно полезным, когда впервые узнал, как настроить среду для программирования на Clojure. Вы можете разобрать файл project.clj в labrepl и собрать вместе, как он работает довольно легко. Не говоря уже об уроках и обучении во встроенном веб-приложении, которое поставляется с labrepl.

Если вы хотите использовать вместо этого lein swank:

Убедитесь, что у вас установлен leiningen. В ваших зависимостях проекта.clj вы хотите иметь такую ​​запись:

[leiningen/lein-swank "1.1.0"]

http://clojars.org/leiningen/lein-swank

Затем, после того как вы выполните lein deps, вы сможете запустить lein swank, а затем из Emacs запустить M-x slime-connect и просто нажать enter через значения по умолчанию.

Если вы собираетесь пойти по этому пути, вот ссылка непосредственно на leiningen, чтобы вы могли пропустить хранилище labrepl: http://github.com/technomancy/leiningen

2 голосов
/ 08 октября 2011

Я нашел это самая простая установка для последней версии всего. Вот краткое резюме, где я предполагаю, что вы установили leiningen.

Установить плагин swank-clojure

$ lein plugin install swank-clojure 1.3.2

Создайте свой закрытый проект

$ lein new test-project
$ cd test-project
$ lein deps

Затем откройте один из файлов clojure из вашего проекта в emacs и запустите clojure-jack-in

M-x clojure-jack-in

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

2 голосов
/ 27 июля 2010

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

...