4

Sublime(文本编辑器)可以将行首空白显示为特殊字符,例如--->

function foo() {
--->if (true) {
--->--->alert(true);
--->}
}

在某些情况下它很有帮助。所以我想让 Vim 做同样的事情。我尝试使用:set list,但此选项仅将制表符显示为 ^I,它不显示空格。有没有办法像在 Sublime 中那样做到这一点?

4

2 回答 2

2

您可以突出显示 BOL 空白,这不会像您要求的那样插入特殊字符,但它至少会通过为其分配特定颜色使其突出。

:highlight BOLWhitespace guibg=red ctermbg=red
:match BOLWhitespace /^\s\+/

第一行将创建一个名为 BOLWhitespace 的高亮组,并将其设置为红色(可能想要使用一些更微妙的东西)。第二行将为行首的所有空白激活此突出显示。

也许这是一个可以接受的妥协?

于 2012-05-19T22:32:55.053 回答
0

可以使用隐藏功能有效地模拟此类箭头(请参阅 参考资料:help conceal):

function! EnableIndentArrows()
    exe 'syntax match NonText ''\%(^\%( \{'.&sw.'}\)*'.
    \   ' \{0,'.(&sw-2).'}\)\@<= '' transparent conceal cchar=┈'
    exe 'syntax match NonText ''\%(^\%( \{'.&sw.'}\)*'.
    \   ' \{'.(&sw-1).'}\)\@<= '' transparent conceal cchar=>'
    set conceallevel=2 concealcursor=nc
endfunction
于 2012-05-22T07:24:25.580 回答