c++ - 带彩虹括号的 Vim 折叠

标签 c++ vim

所以,我到处寻找一个好的彩虹括号插件,它可以为不同级别的括号提供不同的颜色。我真的很喜欢 couple that I've found ,因为他们都在可定制性方面做得很好,同时 highlighting the right thing .它支持的不仅仅是括号;人字形、大括号和括号都突出显示,我真的很喜欢。

好像有quite a few plugins for this! ;我目前正在使用 oblitum,因为他针对深色背景进行了优化(我经常直接从 shell 开始工作)。

因此,按照 github 上关于该插件的提示,我的 .vimrc 中有“永远在线”的片段。但是,当 always on block 位于“语法启用”上方时,它不会将 {} 显示为针对 cpp 文件突出显示。当 always on block 低于 syntax enable 时,折叠不起作用。我认为是插件的特性使它能够做到这一点;它遍历文件并添加着色信息。我注意到,如果我在加载文件后无法识别折叠时使用命令 :syntax enable,那么它识别折叠。但在这一点上,它删除了彩虹括号放在它上面的颜色。

在我的 .vimrc 中,我有以下相关行:

syntax enable
set foldmethod=syntax
set foldenable
set foldlevel=100

let g:rainbow_operators=2
au FileType c,cpp,objc,objcpp call rainbow#activate()

我认为,通过查看 vim 附带的语法文件,例如 c.vim,您可以看到某些 block 被注释为折叠。我敢打赌,如果您可以基于它编写一个正则表达式,您就可以将字符识别为句法组。然后你可以为它定义一个配色方案。事实上,rainbow plugin实际上是在调用“syn region”命令,所以我认为这条路线非常可行,我只是对 vim 脚本不是那么了解。

任何人都可以帮我修改插件或想出一个脚本或实现两者的东西吗?

最佳答案

抱歉来晚了,我已经尝试在 Fix disabled folding (issue #2) 解决它

关于c++ - 带彩虹括号的 Vim 折叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15052044/

相关文章:

c++ - 如何在不使用 std::string 或任何 STL 的情况下将复数存储在 C++ 的字符数组中?

c++ - OpenGL-三角形没有被显示?

C++ 错误 : "use of deleted function" with minGW_32, Qt 5.7.0,windows 10

c++ - 使用 map 使用埃拉托色尼筛法进行内存和素数生成

visual-studio - 如何使用 VSVIM 在 block 和大括号之间更改/删除

vim - vim 有什么东西可以处理这个删除案例吗?

vim - 点可重复映射,用于从正常模式插入空格并沿光标移动

regex - 使用 vim regexp 清除文件中的前导零

vim - 如何在 :Ex 之后返回编辑文件

c++ - 绘制和创建内存缓冲区 (Windows GDI)