[英]How can I make nrepl-ritz-jack-in work remotely over TRAMP / Emacs
我在远程站点上有一个clojure程序,我们称之为mccarthy
。 我想要做的是从我的笔记本电脑连接到nrepl-ritz
,最好使用nrepl-ritz-jack-in
。 插孔适用于本地程序,但似乎没有连接到远程程序。
Cx Cf on /mccarthy:code/program/project.clj
(require 'nrepl-ritz)
Mx nrepl-ritz-jack-in
Emacs似乎挂了。 如果我转到*nrepl-server*
缓冲区,我会看到:
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.flatland.drip.Main.invoke(Main.java:117)
at org.flatland.drip.Main.start(Main.java:88)
at org.flatland.drip.Main.main(Main.java:64)
Caused by: java.lang.AssertionError: Assert failed: project
at leiningen.ritz_nrepl$start_jpda_server.invoke(ritz_nrepl.clj:23)
at leiningen.ritz_nrepl$ritz_nrepl.doInvoke(ritz_nrepl.clj:95)
(还有很多其他线路......)
我在笔记本电脑上使用drip
,但不是在mccarthy
,所以很明显nrepl-ritz-jack-in
没有检测到它是一个远程文件。 然而,在这种情况下,常规的旧nrepl-jack-in
将按预期工作。
我也尝试在mccarthy
上使用lein
一个nrepl-ritz
:
mattox@mccarthy$ lein ritz-nrepl
nREPL server started on port 42874
从我的笔记本电脑,我转发端口,因此本地42874
连接到42874
的mccarthy
:
ssh -L 42874:localhost:42874 -N mccarthy
然后,从我当地的Emacs:
(require 'nrepl-ritz)
Mx nrepl
主持人: 127.0.0.1
港口: 42874
这给了我一个联系:
; nREPL 0.1.7-preview
user>
所以为了测试它,我跑了
Mx nrepl-ritz-threads
它给了我一个很好的线程表。
Mx nrepl-ritz-break-on-exception
user> (/ 1 0)
这会挂起,但有时会显示一个隐藏的调试缓冲区,并且可以重启一些。 如果我告诉它将异常传递回程序,它永远不会将控制权交还给REPL。
我已经做了大量的搜索,但是没有能够得到比“确保lein在你的路上”更具体的东西(而且我确实在两台机器上都这样做了......)。
如果repl仍在从前一个cider-jack-in运行,你应该使用cidercommand连接到正在运行的实例,或者在开始一个新的之前停止前一个
从这里` Clojure - 连接问题重新运行cider-jack-in
另请参阅此https://devcenter.heroku.com/articles/debugging-clojure
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.