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.

ICR
la source

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.

En pause jusqu'à nouvel ordre.
la source
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().

James Haigh
la source
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 ...

imbichie
la source