按照要求和回答here。我可以用'lein swank'在Aquamacs上运行clojure。
我需要在运行slime / clojure之前自动运行'lein swank'。
根据JürgenHötzel的回答,我修改了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'。只要将lein二进制文件放在PATH字符串中就不会使它运行。
答案 0 :(得分:1)
我为这份工作做了一个要点:
只需使用交互式命令“M-x lein-swank”,它将在当前目录中生成命令并连接到它。
我对 lein-swank 进行了一些改进:
lein-swank-command 现在可以自定义:如果 bin 目录不属于 PATH 环境。
添加目录作为交互式参数:如果在当前目录的主要位置找不到 project.clj ,则可以指定位置。< / p>