基于列的ViM语法高亮显示

基于列的ViM语法高亮显示,vim,syntax-highlighting,Vim,Syntax Highlighting,我有一个列格式的文本文件,我想在ViM中突出显示。我想突出显示文件,如下所示: 第1-60列:无突出显示 第61-65栏:红色 第66-70栏:蓝色 第71-80栏:绿色 我看到过基于正则表达式或关键字的高亮显示示例,但我不确定如何仅基于文件的列来实现这一点 这可能吗?定义您自己的hi组: :hi Red ctermfg=red guifg=red :hi Green ctermfg=green guifg=green :hi Blue ctermfg=blue guifg=blue

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

  • 第1-60列:无突出显示
  • 第61-65栏:红色
  • 第66-70栏:蓝色
  • 第71-80栏:绿色
我看到过基于正则表达式或关键字的高亮显示示例,但我不确定如何仅基于文件的列来实现这一点


这可能吗?

定义您自己的hi组:

: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/

:match Red/\%>60v.\%65v.\%70v.\%这实际上很容易做到,因为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

使用匹配与区域(用于其他答案)的速度差是多少?我的文件有几十万行长,所以我需要尽快进行语法匹配。@jlconlin,您尝试过内置基准测试方法吗?参见h:syntime,了解其伟大但简洁的描述。