Configuration de plusieurs règles de surbrillance dans vim


16

J'essaie de mettre en place des règles pour mettre en évidence à la fois les espaces de fin et les lignes qui dépassent une certaine longueur en ajoutant ceci à mon .vimrc:

highlight ExtraWhitespace ctermbg=lightgray guibg=lightgray
match ExtraWhitespace /\s\+$/

highlight OverLength ctermbg=lightgray guibg=lightgray
match OverLength /\%>80v.\+/

Cependant, il ne semble que reprendre la dernière éventualité. Je ne trouve pas de moyen de les faire travailler simultanément.

Réponses:


9

Une manière:

highlight EWOL ctermbg=lightgray ctermfg=black guibg=lightgray guifg=black
match EWOL /\%>20v.\+\|\s\+$/

Un autre:

highlight ExtraWhitespace ctermbg=lightgray ctermfg=black guibg=lightgray guifg=black
match ExtraWhitespace /\s\+$/

highlight OverLength ctermbg=lightgray ctermfg=black guibg=lightgray guifg=black
2match OverLength /\%>80v.\+/

Aussi disponible: 3match. Jusqu'à trois correspondances peuvent être actives à la fois. Ou vous pouvez utiliser matchadd()pour créer des correspondances sans limite de quantité.

Remarque: 3match est utilisé par matchparen, sera donc en conflit si vous l'utilisez.


7

Utilisez matchadd()donc ajoutez ceci à votre .vimrc:

highlight ExtraWhitespace ctermbg=grey guibg=grey
call matchadd('ExtraWhitespace', '\s\+$', 11)

highlight OverLength ctermbg=lightgrey guibg=lightgrey
call matchadd('OverLength', '\%>80v.\+')

Pour afficher tous les matchs:

:echo getmatches()

Pour supprimer les correspondances, utilisez matchdelete().


1

Qu'en est-il de l'utilisation de ce

: sy [ntax] correspond à {group-name} [{options}] [excludenl] {pattern} [{options}]

:highlight ExtraWhitespace ctermbg=lightgray guibg=lightgray
:syntax match ExtraWhitespace /\s\+$/
:highlight OverLength ctermbg=lightgray guibg=lightgray
:syntax match OverLength /\%>80v.\+/

Vous pouvez faire correspondre un grand nombre de modèles en utilisant ceci ...

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.