【问题标题】:Is there some way to automate connections to nREPL from Vim Fireplace?有没有办法从 Vim Fireplace 自动连接到 nREPL?
【发布时间】:2013-11-12 23:29:57
【问题描述】:

我在一个项目中运行lein repl,它成功启动并创建了文件target/repl-port。

使用 VIM 版本 7.4.86 我可以使用如下命令:

:Connect nrepl://localhost:57644

Vim 然后成功连接到 repl,一切都很好。

但是,我的理解是 vim-fireplace 能够使用 target/repl-port 文件自行建立这种连接。那没有发生。我确实看到了关于 lein 2.3 更改为使用 target/repl/repl-port 的评论(我在这个项目中使用 lein 2.0.0 - 这是我无法控制的要求)所以我尝试在这个位置创建一个符号链接,但是也没有捡到。

我使用的 vim-fireplace 版本来自: github.com/tpope/vim-fireplace

最近一次提交,目前是:

f1b8096b3fe00cd9594c8a2bf0819efc154e9843
(Date:   Wed Oct 23 21:25:53 2013 -0700)

我希望自动化这种连接。我对 VIMscript 不是很了解,所以我希望有一些方法可以在不必深入研究源代码的情况下追踪问题。

【问题讨论】:

  • 愚蠢但必要的问题:VIM 的工作目录是否在适当的 lein 项目目录中?
  • 我应该说,对不起。是的。我在 project.clj 所在的目录中。这也是我运行“lein repl”的shell的工作目录。
  • 所以,您尝试了壁炉的问题跟踪器,但没有帮助,所以您来到这里,对吧?
  • 你得到什么样的错误?
  • 没有错误,只是没有连接。如果我尝试符号查找,那么它会显示:“运行 Clojure 时出错:错误:无法找到或加载主类 clojure.main”。但是我cat target/repl-port 并使用该数字说:“:Connect nrepl:// localhost:56013”,然后再次尝试符号查找,它工作得很好。 "lein repl" 和 vim 都在项目目录中运行。

标签: vim clojure nrepl


【解决方案1】:

对此也有一点挣扎。

  1. 在您的项目目录中启动 lein repl
  2. 同样在您的项目目录中启动 vim any-clojure-file.clj

那么它应该会自动连接。

Fireplace 仅在您打开 clojure 文件时自动连接。

最好的问候

阿德里安

【讨论】:

  • 这就是我已经在做的事情了。问题是因为它没有连接,尽管遵循了这些步骤。
【解决方案2】:

我认为处理这种“现在”的最佳方式是使用vim-leiningen:Console 如果已经有一个 REPL 正在运行,将连接到一个 REPL,如果没有,将启动一个。

【讨论】:

    【解决方案3】:

    我也对此感到恼火,也不想为此学习编写 vim 脚本。你可以用你的 shell 来解决它:

    $ alias rvim="gvim $1 +\":FireplaceConnect nrepl://localhost:`cat .nrepl-port`\""
    $ rvim src/something.clj
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-27
      • 1970-01-01
      相关资源
      最近更新 更多