2015-07-21 27 views
3

我正在嘗試使用vagrant,Clojureemacs在一起。具體而言,我無法將cider連接到我的vagrant機器。將emacs蘋果酒連接到vagrant host clojure項目

它在本地工作,當我在我的項目中運行cider-jack-in。 但我不知道在同一個項目中做什麼步驟(通過vagrant共享文件夾同步)在流浪機上。

這是迄今爲止我嘗試:

  • ssh vagrant,然後cd my-project-dir,然後lein repl
  • 在Emacs,cider-connect,輸入[email protected],端口22

我得到以下信息:

SSH端口轉發失敗。檢查nrepl-tunnel緩衝區。

內部的緩衝液:

OpenSSH_6.2p2,OSSLShim 0.9.8r 2011年12月8日特權端口只能 轉發由根。

過程nrepl-隧道代碼異常退出255

何怎樣運行,作爲根?這真的是問題嗎?我應該使用另一個端口嗎?我是否必須在Clojure代碼中添加特定的內容才能啓用該功能?給出的指示here對我來說有點不清楚。

注意:它不同於this question因爲emacs運行在主機上,而不是vagrant機器上

編輯

下面是我做的詳細步驟,感謝@施洛米的答案:

  • 通過添加以下內容編輯.ssh/config(根據y編輯IP OU Vagrantfile):

    主機流浪漢 主機名192.168.50.50 端口22 用戶流浪漢 ForwardAgent是

  • 在主機上,開始我的項目,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,輸入流浪漢,你的密碼和以前lein命令指出的端口。

  • 就是這樣:)

回答

2

看來你正在使用的端口是SSH端口,而不是nrepl端口。

我通常使用遠程訪問的emacs的方式是通過流浪漢:

  1. Add an entry in .ssh/config爲您的遠程主機,說流浪漢
  2. 在Emacs,cider-connect,輸入vagrant
  3. 在最近版本的蘋果酒,它會自動查找該主機上所有活動的nrepl會話,並顯示其項目名稱和端口,因此請選擇正確的,並且您應該能夠開始工作。
+0

3.不能馬上工作,或者我沒有在流浪機上正確啓動nrepl?我被問到A - 我的密碼B - 一個連接端口(我試過59258)C - 我的密碼再次(「在緩衝區* nrepl-tunnel *中)[email protected]的密碼」)D - 連接關閉「nREPL,連接意外關閉......」)。 – nha

+0

哦,我必須注意nRepl中的消息:「在主機127.0.0.1上的端口42018上啓動的nREPL服務器 - nrepl://127.0.0.1:42018」。現在它的作品感謝(+1)。 – nha

+1

您還應該檢查'ssh-copy-id',這將允許您跳過已知主機的密碼輸入。可能對你的情況非常有用 – Shlomi