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



我有一个 fortran 代码的输入文件,该文件需要在特定行和特定列中输入文本。我想在 Vim 中键入这些字段时突出显示它们的背景。

我可以通过以下方式指定一组行

:highlight row ctermbg=green guibg=green
:match row /%>5l.%<9l/

或一组特定的列

:highlight col ctermbg=grey guibg=grey
:match col /%>40c.%<50c/

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

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

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

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

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

最新更新