Вопрос

I have a column-formatted text file that I'd like highlighted in ViM. I want to highlight the file like this:

  • Column 1-60: no highlighting
  • Column 61-65: red
  • Column 66-70: blue
  • Column 71-80: green

I have seen examples of highlighting based on regular expressions or keywords, but I'm not sure how to do this based solely on the column of the file.

Is this even possible?

Это было полезно?

Решение

It's actually really easy to do because vim has a pattern syntax that matches particular column numbers:

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

Другие советы

define your own hi-groups:

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

execute this:

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

note that I used matchadd() it supports max. 3 matches. If you need more, define syn pls.

add a screenshot

enter image description here

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top