私が欲しいもの:
リモートサイトにclojureプログラムがあるので、それを呼び出しましょうmccarthy
。私がしたいのはnrepl-ritz
、できればを使用して、私のラップトップからに接続することnrepl-ritz-jack-in
です。ジャックインはローカルプログラムでは問題なく動作しますが、リモートプログラムに接続していないようです。
試行1
C-x C-f オン /mccarthy:code/program/project.clj
(require 'nrepl-ritz)
M-x 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
ただし、この場合、通常のold は期待どおりに動作します。
試行2
私もnrepl-ritz
使用lein
を開始しようとしましたmccarthy
:
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)
M-x nrepl
ホスト: 127.0.0.1
港: 42874
これは私に接続を与えます:
; nREPL 0.1.7-preview
user>
それをテストするために、私は実行します
M-x nrepl-ritz-threads
それは私にスレッドの素敵な表を与えてくれます。
M-x nrepl-ritz-break-on-exception
user> (/ 1 0)
結果
これはハングしますが、一部の再起動が利用可能な非表示のデバッグバッファーが表示されることがあります。例外をプログラムに戻すように指示しても、REPLに制御が戻されることはありません。
私はたくさんの検索を行いましたが、「leinがあなたのパスにあることを確認する」(そして私は両方のマシンでそうしました...)より具体的なものを得ることができませんでした。
Attempt 2
あなたのローカルマシンで試して、それは大丈夫ですか?それが始まりlein ritz-repl
、emacsから接続しています
(/ 1 0)
-これがハングする?おそらく無限大を評価しようとしています... ;-)