【问题标题】:Connect emacs to a remote ensime server将 emacs 连接到远程 ensime 服务器
【发布时间】:2012-11-06 07:20:12
【问题描述】:

如何连接到远程主机上的 ensime 服务器?对于那种东西,我的上网本有点慢。我复制了数据并使用 tramp 远程编辑文件。我运行 bin/server 来创建服务器和 ssh 转发以便能够连接到它。我使用ensime-connect 连接到本地主机上的端口。远程服务器上的 ensime 服务器以Got connection, creating handler... 回答,仅此而已。 Ensime 在 emacs 状态行中处于[ENSIME: wtf] 模式。我该如何解决这个问题?

【问题讨论】:

  • 你的源文件在客户端和服务器的同一目录下吗?
  • 不是绝对路径,而是相对于$HOME的相同路径。
  • 不要认为这对你有帮助
  • .ensime 有绝对路径。我更改了它们,但我不知道如何将远程服务器上的ensime 指向新的conf。

标签: scala emacs ensime


【解决方案1】:

问题是 ensime 找不到连接的“配置”(通过 ensime-connect 进行)。

然后下面一行会报错:

(if (and loose (ensime-file-in-directory-p file project-root))

因为 project-root 为 nil。

通过将连接设置为 ensime-buffer-connection,可以解决问题。 尝试将以下功能添加到您的 ensime.el

并使用ensime-stackoverflow-connect 进行连接。

(defun ensime-stackoverflow-connect (host port)
  (interactive (list
        (read-from-minibuffer "Host: " ensime-default-server-host)
        (read-from-minibuffer "Port: " (format "%d" ensime-default-port)
                      nil t)))
  (let ((c (ensime-connect host port))
    (config (ensime-config-load "/Users/whunmr/lab/scala/.ensime")))
    (ensime-set-config c config)
    (setq ensime-buffer-connection c))
  )

记得更改代码中的配置路径:“/Users/whunmr/lab/scala/.ensime”

EDIT1: “.ensime”文件是由 M-x ensime 命令在您的 scala 项目文件夹中创建的。 实际上,只需对配置进行硬编码,您就可以忽略该文件。

(defun ensime-my-connection (host port)
      (interactive (list
            (read-from-minibuffer "Host: " ensime-default-server-host)
            (read-from-minibuffer "Port: " (format "%d" ensime-default-port)
                          nil t)))
      (let ((c (ensime-connect host port))
        (config '(:project-name "test" :project-package "com.whunmr" :sources ("./src") :compile-jars ("./" "../../apps/scala/lib/") :target "./bin" :root-dir "/Users/twer/lab/scala/")))
        (ensime-set-config c config)
        (setq ensime-buffer-connection c))
      )

【讨论】:

  • 我如何生成配置文件/里面有什么?
  • 嗨@Tass,请参阅 EDIT1 了解您的问题。
  • 不能从例如部分读取配置吗?流浪汉连接?
  • 我认为可以通过tramp连接读取。只需指定您的 .ensime 网址,例如“@:/Users/....../.ensime”
  • 先尝试通过tramp模式打开.ensime文件。然后连接。看看它是否会正确读取。如果它不起作用,我认为,需要对配置进行硬编码。
猜你喜欢
  • 2015-06-22
  • 2019-05-13
  • 1970-01-01
  • 2018-05-31
  • 1970-01-01
  • 1970-01-01
  • 2017-09-16
  • 2012-03-03
  • 1970-01-01
相关资源
最近更新 更多