Запуск Clojure и других Lisp одновременно на Emacs
Я использую Aquamacs, и Aquamacs предварительно оснащен SLIME.
(setq inferior-lisp-program "/usr/local/bin/sbcl") #####!!!
(add-to-list 'load-path "/Library/Application Support/Aquamacs Emacs/SLIME/contrib")
(add-to-list 'load-path "/Library/Application Support/Aquamacs Emacs/SLIME")
(require 'slime)
(slime-setup)
Как где-то спрашивается, я пытаюсь использовать Clojure, добавив этот код.
(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)))
)
Я не смог запустить Clojure с SLIME, но меня устраивают текущие настройки, единственная проблема в том, что из-за (setq inferior-lisp-program ...)
код, я должен изменить .emacs
код в зависимости от того, что я использую Clojure или SBCL.
Есть ли способ решить эту проблему? Можно ли выбирать между несколькими (низшими) Лиспами?
добавленной
Я мог бы заставить Clojure бежать на Aquamacs. Пожалуйста, обратитесь к разделу Запуск Clojure с "lein swank" по проблеме Aquamacs. Забудьте о настройках, написанных выше, если вы хотите запустить Aquamacs/Clojure. Вам нужна только одна строка, (slime-setup '(slime-repl))
а также lein swank
,
1 ответ
Конечно, вы можете использовать слизь Cu Mx вместо слизи Mx, чтобы SLIME запрашивал у вас имя исполняемого файла Lisp, с тем, что уже указано по умолчанию.
Там также есть slime-lisp-implementations
переменная, которую я настроил так:
(setq slime-lisp-implementations
`((clojure ,(swank-clojure-cmd) :init swank-clojure-init)
(sbcl ("sbcl") :coding-system utf-8-unix)))
Я должен сказать, что я просто не могу вспомнить, что это делает для меня больше (если это действительно что-то делает)... Тип C-h v slime-lisp-implementations
примерно узнать, что он должен делать. Я, кажется, должен напечатать sbcl
если я хочу начать это, что хорошо для меня из-за высокого отношения Clojure-SBCL в моем SLIME'ing.
Обновить:
Я только что заново открыл слизь M-- Mx (этот первый ключ - мета-минус для отрицательного аргумента), который запрашивает одно из имен реализаций Lisp в slime-lisp-implementations
(с завершением табуляции) и затем запускает требуемый Лисп. В приведенном выше примере конфигурации M-- Mx slime sbcl запускает SBCL.
(Я нахожу это полезным главным образом из-за того, что он позволяет настраивать более сложные команды для запуска Lisp - например, (sbcl-options ("sbcl" "--an-option" "--another-option") ...)
, (sbcl-clbuild ("/path/to/clbuild" "lisp") ...)
- и называть их по имени.)