本文翻译自:How can I make nrepl-ritz-jack-in work remotely over TRAMP / Emacs

What I want: 我想要的是:

I have a clojure program on a remote site, let's call it mccarthy . 我在远程站点上有一个clojure程序,我们称之为mccarthy What I want to do is connect to a nrepl-ritz from my laptop, preferably using nrepl-ritz-jack-in . 我想要做的是从我的笔记本电脑连接到nrepl-ritz ,最好使用nrepl-ritz-jack-in The jack in works fine for a local program, but doesn't seem to connect to a remote program. 插孔适用于本地程序,但似乎没有连接到远程程序。

Attempt 1 尝试1

Cx Cf on /mccarthy:code/program/project.clj Cx Cf on /mccarthy:code/program/project.clj

(require 'nrepl-ritz)

Mx nrepl-ritz-jack-in Mx nrepl-ritz-jack-in

Result 结果

Emacs appears to hang. Emacs似乎挂了。 If I go to the *nrepl-server* buffer, I see this: 如果我转到*nrepl-server*缓冲区,我会看到:

Exception in thread "main" java.lang.reflect.InvocationTargetExceptionat 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: projectat leiningen.ritz_nrepl$start_jpda_server.invoke(ritz_nrepl.clj:23)at leiningen.ritz_nrepl$ritz_nrepl.doInvoke(ritz_nrepl.clj:95)

(and tons of other lines, too...) (还有很多其他线路......)

I am using drip on my laptop, but not on mccarthy , so clearly nrepl-ritz-jack-in is not detecting that it's a remote file. 我在笔记本电脑上使用drip ,但不是在mccarthy ,所以很明显nrepl-ritz-jack-in没有检测到它是一个远程文件。 Regular old nrepl-jack-in will work as expected in this case, however. 然而,在这种情况下,常规的旧nrepl-jack-in将按预期工作。

Attempt 2 尝试2

I also tried starting an nrepl-ritz using lein on mccarthy : 我也尝试在mccarthy上使用lein一个nrepl-ritz

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

From my laptop I forward a port so local 42874 connects to 42874 on mccarthy : 从我的笔记本电脑,我转发端口,因此本地42874连接到42874mccarthy

ssh -L 42874:localhost:42874 -N mccarthy

Then, from my local Emacs: 然后,从我当地的Emacs:

(require 'nrepl-ritz)

Mx nrepl Mx nrepl

Host: 127.0.0.1 主持人: 127.0.0.1

Port: 42874 港口: 42874

This gives me a connection: 这给了我一个联系:

; nREPL 0.1.7-preview
user>

So to test it out, I run 所以为了测试它,我跑了

Mx nrepl-ritz-threads Mx nrepl-ritz-threads

It gives me a nice table of threads. 它给了我一个很好的线程表。

Mx nrepl-ritz-break-on-exception Mx nrepl-ritz-break-on-exception

user> (/ 1 0)

Result 结果

This hangs, but sometimes shows a hidden debugging buffer with some restarts available. 这会挂起,但有时会显示一个隐藏的调试缓冲区,并且可以重启一些。 If I tell it to pass the exception back to the program, it never gives control back to the REPL. 如果我告诉它将异常传递回程序,它永远不会将控制权交还给REPL。

I've done plenty of searches but have not been able to get anything more specific than "make sure lein is on your path" (And I did do that, on both machines...). 我已经做了大量的搜索,但是没有能够得到比“确保lein在你的路上”更具体的东西(而且我确实在两台机器上都这样做了......)。


#1楼

参考:https://stackoom.com/question/12KF8/如何通过TRAMP-Emacs远程控制nrepl-ritz-jack-in工作


#2楼

If the repl is still running from the previous cider-jack-in, you should either use the cidercommand to connect to the running instance, or stop the previous before starting a new one 如果repl仍在从前一个cider-jack-in运行,你应该使用cidercommand连接到正在运行的实例,或者在开始一个新的之前停止前一个

From Here ` Clojure - connection issue re-running cider-jack-in 从这里` Clojure - 连接问题重新运行cider-jack-in

Also see this https://devcenter.heroku.com/articles/debugging-clojure 另请参阅此https://devcenter.heroku.com/articles/debugging-clojure

如何通过TRAMP / Emacs远程控制nrepl-ritz-jack-in工作相关推荐

  1. emacs初步了解贴,emacs是什么,为什么用emacs,emacs与vim和Eclipse之间的应用不同,怎么选择这些编辑器和平台做最有效率的开发。...

    首先声明:个人认为 1:不同的开发需求,必定有不同的最优选择,一个项目中有多个需求,那么多个分模块的解决方案就是必然的最优解.多个项目更是如此. 2:不同的开发工具有其不同的优点.取长补短就可以了.不 ...

  2. [转载]生活在 Emacs 中

    Brian Bilbrey 2002 年 8 月 20 日发布 教程简介 本教程讲什么? Emacs 是一个流行的无模式文本编辑器,有许多强大的功能.本教程将教您使用 Emacs 的基础知识.为了让您 ...

  3. Emacs User's Guide

    目录 导言 GNU是什么 GNUEmacs是什么 GNUEMACS的特质 Emacs的线上辅助说明 Emacs的基本知识 Emacs的自学我教材 Ctrl-h的用法 Eamcs的info使用说明 Em ...

  4. 你的 IDE 太重了,试试 Emacs吧!

    点击关注公众号:互联网架构师,后台回复 2T获取2TB学习资源! 上一篇:Alibaba开源内网高并发编程手册.pdf IDE(Integrated Development Environment,集 ...

  5. 生活在Emacs中(转)

    转载链接: http://www.ibm.com/developerworks/cn/education/linux/l-emacs/index.html 生活在 Emacs 中 Brian Bilb ...

  6. Emacs Lisp 功能扩展集锦

    From 参考 Emacs Lisp 功能扩展集锦 session.el desktop.el ibuffer.el browse-kill-ring.el ido.el tabbar.el spee ...

  7. 树莓派:无显示器PC远程控制树莓派,通过网线orWiFi

    #0.目录 #1.基本需求 #2.烧写镜像 #3.用有线网(网线)连接PC,实现远程操作树莓派 #4.接入无线网,通过其它电脑远程控制树莓派(需要路由器,没有路由器可以用PC开启无线热点给树莓派使用) ...

  8. 手机远程控制泵站,自动智能管理空气源热泵

    手机,早已从单纯的通讯工具向娱乐.钱包.游戏机等走去,机不离身,形影不离,而且手机的功能还在不断强大,比如管理空气源热泵等水泵设备,这并不是天马行空的奇思妙想,已然在工业.农业中实现了. 手机管理空气 ...

  9. Win7如何远程控制Win10电脑?

    不同的系统能远程控制吗? "我有两台不同系统的电脑,一台是Win7电脑,另一台式Win10电脑.Win7系统电脑可以远程控制Win10系统的电脑吗?因为有时我需要Win7远程控制Win10电 ...

最新文章

  1. 在Oracle 11g中用看Oracle的共享内存段---------IPCS
  2. PaddlePaddle训练营——公开课——AI核心技术掌握——第2章机器能“看”的现代技术——源自视觉神经原理的卷积网络简介及深入理解
  3. java 强制下线_【java】如何强制app端强制下线?
  4. linux strcpy函数实现,strcpy(char *dest , char *src)的漏洞
  5. php任务分配思路_PHP执行定时任务的几种方法思路
  6. Java方法及构造方法
  7. python打不开text_python-无法启动并使用TextBlob运行
  8. 如何把html文件转化为mp3,如何将Flash转换为MP3
  9. Linux中命令行进行WiFi连接(零基础详解)
  10. CDR制作壮观的浩瀚宇宙星空实例教程
  11. 广东英语高考怎么计算机,2019广东高考英语听说考试大纲出炉!附三大题型得分套路!...
  12. 力扣刷题笔记--304 二维区域和检索 - 矩阵不可变 前缀和
  13. html页面放大缩小样式不变,网页缩小放大后错位的解决方法
  14. Python(Python+Qt)学习随笔:使用xlwings新建Execl文件和sheet的方法
  15. Java中文乱码破碎重组_Java 关于中文乱码问题的解决方案与经验
  16. uva10534 hdu2198 双向LIS问题
  17. 控制工程 留数法(看一遍就懂了)
  18. 带用户名密码的ftp访问路径
  19. 三维点云学习(9)5-实现RANSAC Registration配准
  20. 解决TCP网络传输粘包问题

热门文章

  1. 5Python全站之路系列之MySL连表查询
  2. linux命令:ssh scp ssh-keygen -t rsa用法
  3. java传递和返回对象
  4. input placeholder
  5. ffmpeg 源代码简单分析 : avcodec_decode_video2()
  6. 在 Linux 下搭建 Java 开发环境
  7. 获取SQL-SERVER数据库insert into操作的主键返回值
  8. Android View 绘制流程
  9. Windows下的SQL Server备份文件BAK在Linux环境下还原遇到的问题
  10. 《构建之法》 读书笔记(6)