我试图让 Slime 与 CDT 和 emacs 24 一起工作,但无济于事,希望得到建议。
1) 我确实让 clojure-jack-in 运行,但只有当我将 swank-clojure 1.3.3 作为 lein 插件加载时,如 github swank-clojure 页面中所述,https://github.com/technomancy/swank-clojure .
2) 我试图按照 George Jahad 在 http://georgejahad.com/clojure/swank-cdt.html 中的描述加载 swank-clojure 1.4.0-SNAPSHOT (使用 Clojure 1.2.1),但我无法 clojure-jack-in 运行。我遇到了与下面 3) 中描述的相同的错误。
3) 最近,我尝试复制 technomancy.us 网站上的概念验证短视频的结果,在“随之而来的彻底简化”,http://technomancy.us/149 .在这个方法中,我加载了 swank-clojure 1.4.0-SNAPSHOT 作为 lein 插件并确认它已加载到 ~/.lein/plugins/swank-clojure-1.4.0-SNAPSHOT.jar
.当我创建一个新的 lein 项目时,lein deps
就可以了,在emacs中打开项目的core.clj文件,然后执行M-x clojure-jack-in
,而不是获得 REPL,我在 emacs 迷你缓冲区中收到以下错误:
error in process filter: Search failed: "(run-hooks 'slime-load-hook) ;
on port"
请注意,错误字符串的结尾不包括端口号。除非这是对较长错误字符串的任意截断,否则缺少端口号让我感到不安。
*swank*
缓冲区很长,开头为:;;; Bootstrapping bundled version of SLIME; please wait...
并以:
(provide 'slime-repl)
;;; slime-repl.el ends here
(run-hooks 'slime-load-hook)
;;; proceed to jack in
这与错误消息一致。
我在这上面花了大约六个小时,包括大量的网络搜索,但没有运气。感谢您的任何帮助,您可以提供。
附录:我继续试验,现在是
*swank*
缓冲区像以前一样结束(死在同一个地方),但最后有额外的行。仅供引用,这里是:(provide 'slime-repl)
;;; slime-repl.el ends here
(run-hooks 'slime-load-hook)
[WARNING] Overriding profile: 'null' (source: pom) with new instance from source: pom
[WARNING] Overriding profile: 'null' (source: pom) with new instance from source: pom
[WARNING] Overriding profile: 'null' (source: pom) with new instance from source: pom
Downloading: org/clojure/clojure/1.+/clojure-1.+.pom from repository clojars at http://clojars.org/repo/
Unable to locate resource in repository
[INFO] Unable to find resource 'org.clojure:clojure:pom:1.+' in repository clojars (http://clojars.org/repo/)
Downloading: org/clojure/clojure/1.+/clojure-1.+.pom from repository stuartsierra-releases at http://stuartsierra.com/maven2
Unable to locate resource in repository
[INFO] Unable to find resource 'org.clojure:clojure:pom:1.+' in repository stuartsierra-releases (http://stuartsierra.com/maven2)
Downloading: org/clojure/clojure/1.+/clojure-1.+.pom from repository clojure at http://build.clojure.org/releases
Unable to locate resource in repository
[INFO] Unable to find resource 'org.clojure:clojure:pom:1.+' in repository clojure (http://build.clojure.org/releases)
Downloading: org/clojure/clojure/1.+/clojure-1.+.pom from repository clojure-snapshots at http://build.clojure.org/snapshots
Unable to locate resource in repository
[INFO] Unable to find resource 'org.clojure:clojure:pom:1.+' in repository clojure-snapshots (http://build.clojure.org/snapshots)
Downloading: org/clojure/clojure/1.+/clojure-1.+.pom from repository central at http://repo1.maven.org/maven2
Unable to locate resource in repository
[INFO] Unable to find resource 'org.clojure:clojure:pom:1.+' in repository central (http://repo1.maven.org/maven2)
Copying 9 files to /Users/gw/tech/clojurestuff/cljprojects/infwb/lib
Copying 1 file to /Users/gw/tech/clojurestuff/cljprojects/infwb/lib/dev
Listening for transport dt_socket at address: 61012
;;; proceed to jack in
(附录结束)
附录 2(2011 年 12 月 12 日)感谢所有提供帮助的人,尤其是 @ivant,我将“复选标记”授予他们。我将考虑这种情况已经结束,因为我已经放弃尝试修复它。由于我使用了一个预打包的初始化包,这很复杂,我确信它非常好,但我无法理解它在做什么,也不明白它是否导致了问题。
我用“干净”的 Emacs 24 重新启动并恢复到 swank-clojure 1.3.3 和
clojure-jack-in
现在工作得很好。一旦记录到 swank-clojure 1.4.0-SNAPSHOT 的错误得到解决,我将稍后尝试 CDT。我从人们的评论中学到了一些东西——再次感谢。
最佳答案
注意我既没有安装 emacs 24,也没有安装 CDT。
查看clojure-jack-in
的代码,貌似是事先选好端口,用lein jack-in <port>
启动clojure (除非您在某处重新定义了 clojure-swank-command
)。
然后解析输出(在 *swank*
缓冲区中可见),寻找特定字符串以触发某些操作。这些是:
;;; Bootstrapping bundled version of SLIME
...
;;; Done bootstrapping.
或作为后备:
;;; Bootstrapping bundled version of SLIME
...
(run-hooks 'slime-load-hook) ; on port
并在这些行之间执行 emacs 命令。字符串“proceed to jack in”触发实际连接。
所以检查源,检查一些相关变量的值(如
clojure-swank-command
)并检查 *swank*
中的内容缓冲线索。编辑
您可能想运行
lein deps
在您的项目中,请先尝试 M-x clojure-jack-in
, 否则输出如Downloading: org/clojure/clojure/1.+/clojure-1.+.pom from repository clojars at http://clojars.org/repo/
...
可能会出现在
*swank*
缓冲,并可能干扰启动过程。但是这个特定的依赖对我来说看起来很可疑。你能发一下你的
project.clj
文件也是?
关于emacs - 让 Emacs 24 运行 SLIME 和 Clojure 调试工具包 (CDT) 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8455303/