Skip to content
Highlight multiple searches at the same time, each with a different color.
Vim script
Branch: master
Clone or download
Dan Sharp and vim-scripts Version 1.3
New mappings:
n and N : jump to next / previous match of current ':Search' pattern
<Leader>n and <Leader>N : jump to next / previous ':Search'-ed pattern
<Leader>* : perform a :Search of the word under the cursor / visually selected region

Other changes:
Supports Vim 7 autoload mechanism, but will still work under Vim 6
Bug fixes to escape characters in the search pattern
Latest commit aada883 Sep 23, 2008
Type Name Latest commit message Commit time
Failed to load latest commit information.
autoload Version 1.3 Oct 18, 2010
doc Version 1.3 Oct 18, 2010
plugin Version 1.3 Oct 18, 2010
README Version 1.0: Initial upload Oct 18, 2010


This is a mirror of

MultipleSearch allows you to have the results of multiple searches displayed
on the screen at the same time.  Each search highlights its results in a
different color, and all searches are displayed at once.  After the maximum
number of colors is used, the script starts over with the first color.
The command syntax is: 
:Search <pattern1> 
which will highlight all occurrences of <pattern1> in the current buffer.  A
subsequent :Search <pattern2> will highlight all occurrences of <pattern2>
in the current buffer, retaining the highlighting of <pattern1> as well.
<pattern1> and <pattern2> are any search pattern like you would use in a
normal /<pattern> search.

The :Search command honors Vim's 'ignorecase' and 'smartcase' settings for
its own search.  You can use the \c and \C flags in the search pattern to
force case matching no matter the setting of 'ignorecase' and 'smartcase'.

The :SearchBuffers command works just like :Search, but the search occurs in all currently listed buffers (i.e., appear in the output of :ls).  The match in all buffers will have the same color.  This is different than  :bufdo Search <pattern> because in that case, each buffer will highlight the match in a different color.  Thanks to Jeff Mei for the suggestion!

To clear the highlighting, issue the command
:SearchReset (for the current buffer) or :SearchBuffersReset (for all buffers).
You can specify the maximum number of different colors to use by setting the
g:MultipleSearchMaxColors variable in your .vimrc.  The default setting is
four, but the script should handle as much as your terminal / GUI can
display.  The g:MultipleSearchColorSequence variable lets you list the
colors you want displayed, and in what order.  To make the text more
readable, you can set the g:MultipleSearchTextColorSequence variable to a
list of colors for the text, each position corresponding to the color in the
same position in g:MultipleSearchColorSequence.

If you change one of the preference variables, you can issue the command
to update the script with your new selections.
You can’t perform that action at this time.