在clojure中,可以使用#_注释下一个表单例如

#_(foo 2 3 4)
#_foo
#_{:a '(1 2 3) :b [1 2 3]}

将注释掉上面的列表、符号和地图像Emacs一样,我希望表单能够获得注释的语法亮点。
在vim中,注释掉的表单没有默认的语法高亮显示我也没有找到任何插件可以做到这一点有人试过配置这个吗感谢你的帮助。

最佳答案

vim-clojure-static插件没有使用#_表单启用注释输出,因为它禁用了注释输出块的REPL集成(请参见https://github.com/guns/vim-clojure-static/issues/60)。
在解决这个问题(链接在上面)时,@guns在语法文件中添加了以下内容,以突出显示注释:
" WARNING: This code has the following KNOWN deficiencies:"" · Consecutive #_ macros are not matched correctly:" (list #_#_ 1 2 3) ;; => (3)" · Bracket character literals within #_ comment regions break syntax:" #_[\a \[ \] \b] ;; broken" · Compound forms preceded by reader metacharacters are unmatched:" #_'(α β γ) ;; broken" · Atomic forms preceded by reader metacharacters + whitespace are unmatched:" #_' foo ;; broken"syntax match clojureCommentAtom /\v#_[ \t\r\n]*[^()\[\]{} \t\r\n]+/syntax region clojureCommentListContained start=/(/ end=/)/ contains=clojureCommentListContained,clojureCommentVectorContained,clojureCommentMapContained,clojureCommentStringContained containedsyntax region clojureCommentVectorContained start=/\[/ end=/]/ contains=clojureCommentListContained,clojureCommentVectorContained,clojureCommentMapContained,clojureCommentStringContained containedsyntax region clojureCommentMapContained start=/{/ end=/}/ contains=clojureCommentListContained,clojureCommentVectorContained,clojureCommentMapContained,clojureCommentStringContained containedsyntax region clojureCommentStringContained start=/"/ skip=/\v\\\\|\\"/ end=/"/ containedsyntax region clojureCommentList matchgroup=clojureCommentDelimiter start=/\v#_[ \t\r\n]*\(/ end=/)/ contains=clojureCommentListContained,clojureCommentVectorContained,clojureCommentMapContained,clojureCommentStringContainedsyntax region clojureCommentVector matchgroup=clojureCommentDelimiter start=/\v#_[ \t\r\n]*\[/ end=/]/ contains=clojureCommentListContained,clojureCommentVectorContained,clojureCommentMapContained,clojureCommentStringContainedsyntax region clojureCommentMap matchgroup=clojureCommentDelimiter start=/\v#_[ \t\r\n]*\{/ end=/}/ contains=clojureCommentListContained,clojureCommentVectorContained,clojureCommentMapContained,clojureCommentStringContainedsyntax region clojureCommentString matchgroup=clojureCommentDelimiter start=/\v#_[ \t\r\n]*"/ skip=/\v\\\\|\\"/ end=/"/highlight link clojureCommentDelimiter clojureCommenthighlight link clojureCommentAtom clojureCommenthighlight link clojureCommentListContained clojureCommenthighlight link clojureCommentVectorContained clojureCommenthighlight link clojureCommentMapContained clojureCommenthighlight link clojureCommentStringContained clojureCommenthighlight link clojureCommentList clojureCommenthighlight link clojureCommentVector clojureCommenthighlight link clojureCommentMap clojureCommenthighlight link clojureCommentString clojureComment
我个人使用Spacemacs(包含Vim绑定和电池的Emacs)和Clojure layer,这里的评论和REPL集成都工作得很好,但我相信您知道这一点。

关于vim - 在vim中使用clojure的注释宏突出显示表单,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46073642/

10-10 06:27