【问题标题】:Different colors for folds and subfolds in VimVim 中折叠和子折叠的不同颜色
【发布时间】:2011-04-25 05:48:08
【问题描述】:

是否可以为折叠和子折叠设置不同的颜色,例如:

  • 1 级折叠的灰色背景上的蓝色前景(默认)
  • 2 级折叠的深黄色背景上的黑色前景
  • 等等……(虽然再往下看有点过分)

【问题讨论】:

    标签: vim folding


    【解决方案1】:

    来自 vim 文档:

    COLORS                          *fold-colors*
    
    The colors of a closed fold are set with the Folded group |hl-Folded|.  The
    colors of the fold column are set with the FoldColumn group |hl-FoldColumn|.
    Example to set the colors: >
    
            :highlight Folded guibg=grey guifg=blue
            :highlight FoldColumn guibg=darkgrey guifg=white
    

    所以你不能轻易做到这一点。我能给你的最好建议是尽可能设置状态栏以显示当前折叠级别。

    【讨论】:

    • 我已经看到了……但还没有完全理解后果。谢谢
    • @ThG 那些不按级别对列进行颜色折叠。只是为整列设置颜色。
    【解决方案2】:

    我有一个 Vim c 代码的简单补丁,可以让您轻松设置它。如果您希望补丁重新编译 Vim,或者如果您使用的是 Windows,请告诉我,我可以向您发送 Vim 7.2 的补丁可执行文件。

    【讨论】:

    • 感谢您的回答,但我忘了说这是用于纯文本文件的手动折叠。不管怎么说,还是要谢谢你。 ThG
    • 在这种情况下,为什么不重新映射 zf 也执行 :call matchadd() 和 zd 执行 :call matchdelete()
    • Benoit :我不知道这个功能,并在文档中查找了它。在这种情况下,您如何定义模式?更一般地说,您如何在该函数中定义一个模式,例如:从行首到一系列字符,例如 -:- ? (可以在定义列表中使用以突出显示要解释的单词:Vim -:- 一个严格的文本编辑器...)ThG
    • @ThG -- 我认为我的补丁也适用于手动折叠。它涉及使用 'foldexpr' 选项来设置返回折叠文本的函数。在函数中,您可以更改突出显示,我相信 v:foldlevel 变量可用于决定应用哪个突出显示,即使是手动折叠也是如此。如果您有任何兴趣,我可以确认。
    • @Herbert Sitz :我有兴趣,但可惜能力有限。无论如何,我准备尝试......(Mac OS Terminal,Vim 7.3)。正如他们(大约)在不可能的任务中所说的那样:“与往常一样,如果我的任务失败,你可以否认对我的行为有任何了解”
    【解决方案3】:

    这取决于您使用的是 Gui Vim 版本还是文本版本。 从我这边(文本版本)我已经在我的 .vimrc 中设置了它

    hi Folded ctermfg=Black
    hi Folded ctermbg=DarkGrey
    

    【讨论】:

    • 对于那些对他们的 rc 文件学究的人群,hihighlight 的缩写。我发现当我不可避免地长时间不回到我的 vimrc 时,使用长格式效果更好。
    猜你喜欢
    • 2013-01-16
    • 2011-07-01
    • 2012-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-09
    • 1970-01-01
    相关资源
    最近更新 更多