Domanda

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?

È stato utile?

Soluzione

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

Altri suggerimenti

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top