我已经安装了vimclojure,以便更容易开始学习clojure。但是,我无法在vim中设置REPL。这主要是因为我无法在vim(?)
中编写maplocalleader基于vimclojure / doc / clojure.txt中的文档,我将以下内容放在我的.vimrc中以启动REPL -
:map <LocalLeader>sr *sr* *StartRepl*
但输入“sr”不会启动REPL。
提前致谢。
答案 0 :(得分:5)
在完全定义VimClojure映射之前,插件中很可能发生错误。
当Clojure源文件加载到Vim缓冲区时,Clojure源文件存在语法错误,这种情况可能会发生多次。
在加载源文件(语法突出显示或某些东西)期间,插件中出现了一些错误,这些错误会导致错误被定义。
这可能只是VimClojure的一个不幸的问题,应该报告,但我没有时间去挖掘并记录智能错误报告/补丁。
要进行故障排除,在当前缓冲区中打开Clojure源文件,请尝试执行以下操作:
:call vimclojure#Repl.New()
这将调用插件中映射到\ sr的函数。这不是推荐使用Repl的推荐方式,但由于我们只是对您的配置进行故障排除,因此希望它能为您揭示有意义的内容。
此外,请执行此操作以查看是否有任何有用的消息被记录。
:messages
答案 1 :(得分:4)
<LocalLeader>
使用maplocalleader
变量中的值,或者默认为反斜杠。如果您未设置maplocalleader
变量,请尝试\sr
答案 2 :(得分:4)
我发现vim-fireplace插件更容易在Vim中开始学习Clojure。好的介绍可以在"Unboxing vim-fireplace"找到。
答案 3 :(得分:3)
我的.vimrc中没有sr的映射,但它适用于我。
您是否检查过您的Nailgun服务器正在运行,并且您已打开Gorilla?
如,
let clj_want_gorilla = 1
let vimclojure#NailgunClient = "/Users/foo/vimclojure-2.1.0/ng"
答案 4 :(得分:3)
可以使用Conque,一个支持在vim缓冲区中运行shell的vim插件。我已成功使用它在vim中运行clojure REPL。它支持分屏,因此可以将代码从clojure源代码缓冲区发送到clojure REPL。
答案 5 :(得分:2)
我发现如果找不到NailgunClient,VimClojure将无声地失败,并且没有&lt; LocalLeader&gt;命令将起作用。我基本上只是重复上面的Joe Holloway,但是试试这个来验证Nailgun客户端是否真的找到了:
:call vimclojure#Repl.New()
在我的情况下,我忘了构建客户端,所以我只是回到解压缩的VimClojure文件夹并运行make
。这会创建ng
,即nailgun客户端可执行文件。确保它位于PATH
某处,或设置
let vimclojure#NailgunClient = "/Users/foo/vimclojure-2.1.0/ng"
如上所述。
答案 6 :(得分:1)
你不需要按,先生?我认为LocalLeader是默认的逗号。
答案 7 :(得分:0)
您是否尝试将其映射到其他内容?看起来你不确定LocalLeader映射到了什么,所以我建议你改变你的映射。
答案 8 :(得分:0)
我用以下方法解决了E10问题:set nocompatible。然后\ sr等命令工作正常。
答案 9 :(得分:0)
使用Nailgun server is how I've done it设置VimClojure。我使用leiningen来帮助管理类路径。这是一个相当复杂的过程,但是一旦你设置它就很好。
答案 10 :(得分:0)
除了使用正确的本地领导键(默认情况下为“\” - &gt; \sr
)之外,请注意,为了让VimClojure启动一个repl,需要在一个clojure文件中加载一个缓冲。如果你只是启动vim并点击\sr
什么都不会发生,因为VimClojure尚未激活。
您可以通过编辑具有clj扩展名的文件来激活VimClojure。从内部vim:
:e test.clj
现在当你点击\sr
时,repl应该会打开。如果没有,请参阅有关检查隐藏错误消息的其他答案。
本教程是截至撰写本文时的最新版本,并帮助我在OSX中与Leiningen建立了VimClojure:https://github.com/daveray/vimclojure-easy
“下一步”部分中链接的更高级设置也很有帮助。