6

我已经安装了 vimclojure 以便更容易地开始学习 clojure。但是,我无法在 vim 中设置 REPL。这本质上是因为我无法在 vim 中编写 maplocalleader(?)

根据 vimclojure/doc/clojure.txt 中的文档,我将以下内容放入我的 .vimrc 中以启动 REPL -

:map <LocalLeader>sr *sr* *StartRepl*

但是输入“sr”并不会启动 REPL。

提前致谢。

4

11 回答 11

5

在完全定义 VimClojure 映射之前,插件中很可能发生错误。

当 Clojure 源文件在加载到 Vim 缓冲区时出现语法错误时,我曾多次遇到一种可能的情况。

在加载源文件(语法突出显示或其他东西)期间插件中发生了一些错误并阻止映射被定义。

这可能只是 VimClojure 的一个不幸问题,应该报告,但我没有时间进行足够的挖掘并记录智能错误报告/补丁。

要排除故障,请在当前缓冲区中打开 Clojure 源文件,尝试执行以下操作:

:call vimclojure#Repl.New()

这会调用映射到 \sr 的插件内的函数。这不是启动 Repl 的推荐方式,但由于我们只是对您的配置进行故障排除,希望它会揭示一些对您有意义的东西。

此外,请执行此操作以查看是否记录了任何有用的消息。

:messages
于 2009-10-08T21:04:43.303 回答
4

<LocalLeader> uses value from maplocalleader variable or it is backslash by default. If you do not set maplocalleader variable try \sr

于 2009-07-02T09:05:35.150 回答
4

我发现vim-fireplace插件是在 Vim 中开始学习 Clojure 的一种更简单的方法。很好的介绍可以在"Unboxing vim-fireplace"中找到。

于 2013-07-09T15:21:47.567 回答
3

可以使用Conque,这是一个支持在 vim 缓冲区中运行 shell 的 vim 插件。我已成功使用它在 vim 中运行 clojure REPL。它支持分屏,因此可以将代码从 clojure 源代码缓冲区发送到 clojure REPL。

于 2010-08-20T05:49:47.443 回答
3

我的 .vimrc 中没有 sr 的映射,但它对我有用。

您是否检查过您的 Nailgun 服务器是否正在运行,并且您是否已打开 Gorilla?

例如,

let clj_want_gorilla = 1
let vimclojure#NailgunClient = "/Users/foo/vimclojure-2.1.0/ng"
于 2009-07-21T02:01:45.883 回答
2

我发现如果找不到 NailgunClient,VimClojure 将静默失败,并且 <LocalLeader> 命令都不起作用。我基本上只是在重复上面的 Joe Holloway,但试试这个来验证是否真的找到了 Nailgun 客户端:

:call vimclojure#Repl.New()

在我的情况下,我忘记构建客户端,所以我只是返回到解压缩的 VimClojure 文件夹并运行make. 这将创建ngnailgun 客户端可执行文件。确保这是在您的PATH某个地方,或设置

let vimclojure#NailgunClient = "/Users/foo/vimclojure-2.1.0/ng"

正如刚才提到的。

于 2010-01-31T02:57:18.737 回答
1

你不需要按吗,先生?我认为 LocalLeader 默认是逗号。

于 2009-07-02T07:49:34.307 回答
0

使用 Nailgun服务器设置 VimClojure 就是我的做法。我使用 leiningen 来帮助管理类路径。这是一个相当复杂的过程,但是一旦设置好就很好了。

于 2011-12-19T07:28:48.383 回答
0

除了使用正确的本地领导密钥(即\sr默认情况下“\”->)之外,请注意,为了让 VimClojure 启动 repl,需要在缓冲区中加载一个 clojure 文件。如果你只是启动 vim 并点击\sr什么都不会发生,因为 VimClojure 还没有激活。

您可以通过编辑带有 clj 扩展名的文件来激活 VimClojure。从 vim 内部: :e test.clj

现在,当您点击\srrepl 时,应该会打开。如果没有,请参阅有关检查隐藏错误消息的其他答案。

本教程在撰写本文时是最新的,并帮助我在 OSX 中使用 Leiningen 设置 VimClojure: https ://github.com/daveray/vimclojure-easy

链接到 What's Next 部分的更高级的设置也很有帮助。

于 2012-06-04T21:04:09.240 回答
0

您是否尝试过将其映射到其他东西?您似乎不确定 LocalLeader 映射到什么,所以我建议您更改映射。

于 2009-07-02T17:48:45.827 回答
0

我用 :set nocompatible 解决了 E10 问题。然后 \sr 等命令工作正常。

于 2009-09-22T01:00:09.080 回答