104 votes

Existe-t-il un moyen de mettre en évidence plusieurs recherches dans (g)Vim ?

Je veux rechercher plusieurs chaînes dans Vim/gVim et les mettre en surbrillance dans différentes couleurs. Existe-t-il un moyen de le faire avec un Vim prêt à l'emploi ou avec un plug-in ?

48voto

philant Points 17345

Cela peut être fait manuellement, sans script, pour deux modèles de recherche.

:match Search /pattern/
:match Search /<CTRL-R>/   # highlight the current search pattern

La recherche est le nom du groupe de mise en surbrillance, utilisez la complétion pour sélectionner un autre groupe à mettre en surbrillance avec une couleur différente.

 :match <TAB>
 :match <TAB>    # completion will list all highlight group

Ceci est pratique lorsque vous ne pouvez pas utiliser votre propre configuration vim.

:match none      # clear the match pattern to stop highlighting

41voto

Naren Points 166

Pour rechercher plusieurs chaînes dans vim, vous pouvez faire comme :

/search1\|search2

Cela fonctionne, et mettra en surbrillance à la fois search1 et search2, mais avec la même couleur. Vous devez le faire dans l'éditeur vim.

21voto

George V. Reilly Points 5471

Essayez « Mettre en surbrillance plusieurs mots », qui utilise matchadd().

7voto

James Haigh Points 365

Oui, prêt à l'emploi, vous pouvez utiliser matchadd().

Pour ajouter une surbrillance, par exemple. pour l'espace blanc arrière :

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

Pour afficher toutes les correspondances :

:echo getmatches()

Pour supprimer des correspondances, utilisez matchdelete(). Par exemple :

:call matchdelete(7)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X