正如这里所问和回答的那样。我可以使用 'lein swank' 在 Aquamacs 上运行 clojure。
在运行 slime/clojure 之前,我需要自动运行“lein swank”。
- 问:有没有办法自动做到这一点?我的意思是当调用 slime/clojure (Mx slime-connect) 时如何自动运行命令“lein swank”。
- 问:如果我必须想出 elisp 代码来运行“lein swank”,我该怎么做?
添加
根据 Jürgen Hötzel 的回答,我将 elisp 修改如下。
(德芬莱因斯万克() (交互的) (let ((default-directory (locate-domination-file default-directory "/Users/smcho/bin/leiningen"))) (当(不是默认目录) (错误“不在 Leiningen 项目中。”)) ;; 你可以使用 .dir-locals.el 自定义 slime-port (let ((proc (start-process "lein-swank" nil "/Users/smcho/bin/leiningen/bin/lein" "swank" (number-to-string 4005)))) (当 proc (处理-放置过程:输出零) (set-process-sentinel proc (lambda (proc event) (消息“%s%s:‘%S’” (过程获取过程:输出) proc (replace-regexp-in-string "\n" "" 事件)))) (set-process-filter proc (λ(过程输出) ;; 记录最后一行输出直到连接(可能的错误消息) (过程-放置过程:输出(连接(过程-获取过程:输出)输出)) (当(字符串匹配“连接打开”输出时) (粘液连接“本地主机”4005) ;; 无需进一步处理输出 (set-process-filter proc nil)))) (消息“正在启动 swank 服务器...”)))))
但是,我得到了这个错误。
在此目录中找不到 project.clj。lein-swank: `"异常退出,代码为 1"'。
我发现我应该将 pwd 更改为 ~/bin/leiningen 以运行“lein swank”。只需将 lein 二进制文件放入 PATH 字符串中并不会使其运行。