连接emacs cider到流浪主机clojure项目



我正在尝试使用vagrant, Clojureemacs在一起。具体来说,我不能将cider连接到我的vagrant机器。

它在本地工作,当我在我的项目中运行cider-jack-in。但是我不知道在流浪机器上的同一个项目(通过流浪共享文件夹同步)中要做什么。

这是我到目前为止的尝试:

  • ssh vagrant, cd my-project-dir, lein repl
  • 在emacs, cider-connect,输入vagrant@192.168.50.50,端口22

我得到以下消息:

SSH端口转发失败。查看 nrepll -tunnel缓冲区

在缓冲区内:

OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011特权端口只能使用由root转发

进程nrepll -tunnel异常退出,代码255

我如何以root身份运行它?这真的是问题所在吗?我应该使用另一个端口吗?我是否必须在我的Clojure代码中放置一些特定的东西来启用它?这里给的指示我不太清楚。

注意:它与这个问题不同,因为emacs在主机上运行,而不是在vagrant机器上运行

编辑:

以下是我所做的详细步骤,感谢@Shlomi的回答:
  • 通过添加以下内容编辑.ssh/config(根据您的Vagrantfile编辑IP):

    主机的流浪汉主机名192.168.50.50端口22用户的流浪汉ForwardAgent yes

  • 在主机中,用lein repl启动我的项目。注意消息中的端口:nREPL server started on port 42018 on host 127.0.0.1 - nrepl://127.0.0.1:42018

  • 在emacs中,M-x cider-connect,输入vagrant,您的密码和前一个lein命令所记录的端口

您正在使用的端口似乎是ssh端口而不是nrepl端口。

我通常使用emacs进行远程访问的方式是:

  1. 在.ssh/config中为远程主机添加一个条目,写入vagrant
  2. 在emacs中,cider-connect,输入vagrant
  3. 在最新版本的cider中,它会自动找到该主机上所有活动的nrepl会话,并显示它们的项目名称和端口,所以选择正确的一个,你应该能够开始工作。

最新更新