Подтвердить что ты не робот

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".

Обратитесь к этим.

4b9b3361

Ответ 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 на Аквамаках.