基于列的ViM语法高亮显示

我有一个列格式的文本文件,我想在ViM中突出显示。 我想突出显示这样的文件:

  • 第1-60列:无突出显示
  • 第61-65栏:红色
  • 66-70栏:蓝色
  • 71-80列:绿色
  • 我已经看到基于正则表达式或关键字突出显示的示例,但我不确定如何仅基于文件列来完成此操作。

    这甚至有可能吗?


    这实际上很简单,因为vim具有与特定列号匹配的模式语法:

    syn region Red start="%61c" end="%66c"
    syn region Blue start="%66c" end="%71c"
    syn region Green start="%71c" end="%81c"
    
    hi Red ctermfg=Red guifg=Red
    hi Blue ctermfg=Blue guifg=Blue
    hi Green ctermfg=Green guifg=Green
    

    定义你自己的高分组:

    :hi Red ctermfg=red guifg=red
    :hi Green ctermfg=green guifg=green 
    :hi Blue ctermfg=blue guifg=blue 
    

    执行此操作:

    :match Red /%>60v.*%<66v/
    :2match Blue /%>65v.*%<71v/
    :3match Green /%>70v.*%<81v/
    

    注意我使用了matchadd()它支持最大。 3场比赛。 如果您需要更多,请定义合适的产品。

    添加屏幕截图

    在这里输入图像描述

    链接地址: http://www.djcxy.com/p/19137.html

    上一篇: ViM syntax highlighting based on column

    下一篇: VIM Syntax coloring for error listings