Vim中的交替缩进显示

  • 本文关键字:缩进 显示 Vim vim
  • 更新时间 :
  • 英文 :


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

我相信缩进级别可以用一个符号来表示(GUI中的图标,术语中带有突出显示的文本(。我不确定的部分是显示没有缩进的线条。有人知道吗,这可能吗和/或你会怎么做?

这个问题不是以这种方式显示压痕水平是否可取;但是如何在Vim中实现它。

您可以使用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

然后使用CCD_ 4来提供基于定制计算的指示符。

注意:这些语法命令中的NonText是一个任意的高亮显示组。

看看这些插件:缩进辅助线和缩进HL两者都有屏幕截图。

最新更新