Как спросили и ответили здесь .Я мог бы использовать 'lein swank' для запуска clojure на Aquamacs.
Мне нужно автоматизировать запуск 'lein swank' перед запуском слизи / clojure.
- Q: Есть ли способк этому автоматически?Я имею в виду, как я могу запустить команду 'lein swank' автоматически, когда вызывается slime / clojure (Mx slime-connect).
- В: Если мне нужно придумать код elisp для запуска 'lein swank', как я могу это сделать?
Добавлено
По материалам Юргена Хетцеляответ, я изменил elisp следующим образом.
(defun lein-swank ()
(interactive)
(let ((default-directory (locate-dominating-file default-directory "/Users/smcho/bin/leiningen")))
(when (not default-directory)
(error "Not in a Leiningen project."))
;; you can customize slime-port using .dir-locals.el
(let ((proc (start-process "lein-swank" nil "/Users/smcho/bin/leiningen/bin/lein" "swank" (number-to-string 4005))))
(when proc
(process-put proc :output nil)
(set-process-sentinel proc (lambda (proc event)
(message "%s%s: `%S'"
(process-get proc :output)
proc (replace-regexp-in-string "\n" "" event))))
(set-process-filter proc
(lambda (proc output)
;; record last line of output until connected (possible error message)
(process-put proc :output (concat (process-get proc :output) output))
(when (string-match "Connection opened on" output)
(slime-connect "localhost" 4005)
;; no need to further process output
(set-process-filter proc nil))))
(message "Starting swank server...")))))
Но я получил эту ошибку.
No project.clj found in this directory. lein-swank: `"exited abnormally with code 1"'.
Я обнаружил, что мне нужно изменить pwd на ~ / bin / leiningen, чтобы запустить lein swank.Просто поместите бинарный файл в строку PATH, чтобы он не работал.