[英]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.