Nrepl-ritz-jack-in'i TRAMP / Emacs üzerinden uzaktan nasıl çalıştırabilirim


299

İstediğim:

Uzak bir sitede bir clojure programım var, diyelim mccarthy. Yapmak istediğim şey nrepl-ritz, tercihen dizüstü bilgisayarımdan bir a bağlamaktır nrepl-ritz-jack-in. Jack, yerel bir program için iyi çalışıyor, ancak uzak bir programa bağlanmıyor gibi görünüyor.

Deneme 1

C-x C-f üzerinde /mccarthy:code/program/project.clj

(require 'nrepl-ritz)

M-x nrepl-ritz-jack-in

Sonuç

Emacs asılı görünüyor. *nrepl-server*Arabelleğe gidersem , şunu görüyorum:

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)

(ve tonlarca başka hat da ...)

dripDizüstü bilgisayarımda kullanıyorum , ancak mccarthyaçık nrepl-ritz-jack-indeğil , bu yüzden uzak bir dosya olduğunu algılamıyor. nrepl-jack-inBununla birlikte, normal yaşlılar bu durumda beklendiği gibi çalışacaktır.

Deneme 2

Ben de bir başlangıç çalıştı nrepl-ritzkullanarak leinüzerinde mccarthy:

mattox@mccarthy$ lein ritz-nrepl
nREPL server started on port 42874

Benim laptop itibaren bir port nedenle yerel iletmek 42874erişim sağlanır 42874üzerinde mccarthy:

ssh -L 42874:localhost:42874 -N mccarthy

Sonra, yerel Emacs'ımdan:

(require 'nrepl-ritz)

M-x nrepl

Host: 127.0.0.1

Liman: 42874

Bu bana bir bağlantı veriyor:

; nREPL 0.1.7-preview
user> 

Test etmek için koşuyorum

M-x nrepl-ritz-threads

Bana güzel bir konu tablosu veriyor.

M-x nrepl-ritz-break-on-exception

user> (/ 1 0)

Sonuç

Bu askıda kalır, ancak bazen bazı yeniden başlatmaların olduğu gizli bir hata ayıklama arabelleği gösterir. İstisnayı programa geri vermesini söylersem, asla REPL'e kontrol vermez.

Ben bol aramalar yaptım ama "lein yolunda olduğundan emin olun" daha spesifik bir şey elde edemedim (Ve ben bunu yaptım, her iki makinede ...).


44
(/ 1 0)- bu askıda kalıyor mu? Muhtemelen sonsuzluğu değerlendirmeye çalışıyoruz; ;-)
firefrorefiddle

8
Çalışılıyor Attempt 2yerel makinede, bu çalışma sonucu olumlu mu? Bu başlangıç lein ritz-replve sonra emacs bağlanıyor
Guillermo Winkler

4
Evet, yerel makinemden başlayarak iyi çalıştı. Sadece sorun olan uzak bağlantılar.
MattoxBeckman

5
Bu adımları izlerseniz
Avanz

6
Zaten cevap verdim kardeşim. stackoverflow.com/questions/22908315/… Tam olarak aradığınız şey değil ama yardımcı olacak
prestotron

Yanıtlar:


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.