Vim中显示替代缩进

时间:2011-06-28 17:35:03

标签: vim

我遇到了这个问题: https://softwareengineering.stackexchange.com/questions/87077/how-can-a-code-editor-effectively-hint-at-code-nesting-level-without-using-inde 并且认为Vim可以使用插件做类似的事情。

我认为缩进级别可以用a符号表示(GUI中的图标,术语中带有突出显示的文本)。我不确定的部分是显示没有缩进的线条。有谁知道,是否有可能和/或你将如何做到这一点?

这个问题不在于是否需要以这种方式显示压痕水平;但是如何在Vim中完成它。

2 个答案:

答案 0 :(得分:3)

您可以使用7.3中新增的conceal功能。

这是一个大致完成文章描述内容的函数(对于空格;相反,对于制表符来说,这将是一个相当简单的补充):

function! IndentationHeatMap()
    set conceallevel=1
    for i in range(1,9)
        let indentation = repeat(" ", &sts * i)
        exe 'syntax match NonText "^' . indentation . '" conceal cchar=' . i
    endfor
endfunction

更靠近您请求的解决方案可能会使用conceal隐藏所有前导空格

syntax match NonText "^\s\+" conceal

然后使用signs根据自定义计算提供指标。

注意:这些语法命令中的NonText是任意突出显示组。

答案 1 :(得分:0)

看看这些插件:Indent GuidesIndentHL 两者都有截图。