Vim可以将BOL空白显示为特殊字符吗?

时间:2012-05-18 14:23:12

标签: vim

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

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

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

2 个答案:

答案 0 :(得分:2)

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

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

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

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

答案 1 :(得分:0)

可以使用隐藏功能有效地模拟此类箭头。

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