Is there any way to highlight multiple searches in (g)Vim?

Solution 1:

There are two simple ways to highlight multiple words in vim editor.

  1. Go to search mode i.e. type '/' and then type \v followed by the words you want to search separated by '|' (pipe).
    E.g.: /\vword1|word2|word3

  2. Go to search mode and type the words you want to search separated by '\|'.
    E.g.: /word1\|word2\|word3

Basically the first way puts you in the regular expression mode so that you do not need to put any extra back slashes before every pipe or other delimiters used for searching.

Solution 2:

This can be done manually, without any script, for two search patterns.

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

Search is the name of the highlight group, use the completion to select another group to highlight with a different color.

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

This an be handy when you cannot use your own vim configuration.

:match none      # clear the match pattern to stop highlighting

Solution 3:

For searching multiple strings in vim you can do like:

/search1\|search2

This works, and will highlight both search1 and search2, but with same color. You have to do this in vim editor.