按模式突出显示的语法

时间:2014-07-06 14:40:36

标签: vim

我已经使用语法高亮一段时间来匹配前导标签后面的空格字符。

 autocmd Syntax * highlight LeadingSpaces guibg=#afd7af ctermbg=Black
 autocmd Syntax * syntax match LeadingSpaces /^\t\+\zs \+/

问题是,它并不总是有效。例如,在块内注释中,突出显示不会生效:

 test  // the extra space before "test" gets highlighted
/**
 * test  // here the extra spaces aren't highlighted
 */

如果有人知道我做错了什么,那就太好了。否则,我想我必须回到常规匹配。

1 个答案:

答案 0 :(得分:1)

我有类似的问题(但在行尾显示尾随空格)。要解决它,而不是使用会干扰实际语法的语法,您只需使用matchadd突出显示正则表达式。

这看起来像这样(重用你的LeadingSpaces)

autocmd BufNew * call matchadd ('LeadingSpaces', '^\t\+\zs \+')