如何将vimclojure和SLIMV结合起来使用?

6

这两个插件都有其优点,SLIMV的REPL比vimclojure更快,但vimclojure的缩进和语法高亮更好(同时,vimclojure的语法高亮在REPL中也能正常工作)。而且vimclojure的缩进更好。例如,这是一个函数在SLIMV中的缩进:

(defn func
      [])

这是vimclojure的:

(defn func
   [])

我想同时使用两个插件,发挥它们的优点。我需要在SLIMV REPL中进行语法着色,并使用vimclojure缩进。你有任何想法如何做到这一点吗?

1个回答

7
  • 您可以将vimfiles/indent中的Slimv缩进插件替换为任何您想要的插件(我猜也可以使用Vimclojure的缩进插件)。
  • 您还可以在vimfiles/syntax中替换Slimv中的语法插件(实际上没有特殊的语法插件,它使用了Vim内置的lisp.vim)。
  • 您可以通过在您的.vimrc中使用以下命令来启用Slimv REPL缓冲区中的语法着色:let g:slimv_repl_syntax = 1
  • ...并且我会修复您在Slimv中提到的缩进问题 :)

感谢您的回复。我尝试使用vimclojure的缩进和语法文件替换SLIMV的,但是vimclojure的缩进和语法脚本使用了很多vimclojure函数,因此它们在vimclojure之外无法正常工作。 - sinan
1
@bs0d1 你只需要autoload/vimclojure.vim文件。然后语法和缩进插件就会起作用。请确保不设置g:vimclojure#DynamicHighlighting选项,因为它需要后端支持。禁用它不会影响Clojure代码的一般高亮显示。 - kotarak
@tamas-kovacs 如果你想的话,我可以将后端独立部分重构为它们自己的文件。然后你就可以重复使用vimclojures的语法和缩进插件。我不认为我们需要重新发明轮子,当我们可以共同努力。 - kotarak
@kotarak 谢谢,听起来是个好主意,但我担心这并不简单,因为Slimv使用从swank服务器接收到的:indentation-update信息来缩进用户定义的函数(带有&body参数),而这将在替换时丢失。因此,最好的解决方案是某种合并。我会研究Vimclojure的缩进代码,以便决定如何继续。 - Tamas Kovacs
@Tamas,抱歉我找不到Bitbucket项目的错误报告页面。当我编辑一个lein项目然后运行REPL时,如果没有这些命令:https://github.com/clojure/clojure/blob/master/src/clj/clojure/main.clj#L258,我不能使用source、find-doc和一些其他命令。但是,如果我在终端(与vim相同的文件夹中)中只运行 lein repl ,我可以使用这些特殊命令(或函数、宏等)。 - sinan
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接