在vim中突出显示固定宽度块背景颜色

时间:2013-12-23 14:41:57

标签: vim

我有一个fortran代码的输入文件,需要特定行和特定列中的输入文本。当我在Vim中输入这些字段时,我想强调这些字段的背景。

我可以通过

指定一组行
:highlight row ctermbg=green guibg=green
:match row /\%>5l.\%<9l/

的一组特定列
:highlight col ctermbg=grey guibg=grey
:match col /\%>40c.\%<50c/

有没有办法为每个字段指定行和列宽并突出显示不同的颜色?

1 个答案:

答案 0 :(得分:1)

您可以组合线条和列限制以突出显示块:

:match block /\%>5l\%>3c.\%<8c\%<9l/

请注意\%c匹配字节索引,而非实际字符。除非您的Fortran代码只能包含不带<Tab>的可打印ASCII字符,否则您最好将屏幕宽度与\%v匹配(Vim称之为虚拟列)。

对于不同的匹配,您有:match:2match:3match。这些是用于交互式使用;如果要通过映射,自定义命令或autocmd添加突出显示,则应该首选matchadd() / matchdelete()函数。它们稍微涉及使用,(您需要存储返回的ID以便以后删除它们),但您可以使用任意数量的它们。