我遇到了这个问题: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两者都有屏幕截图。