viper: Improved Search
2.6 Improved Search
===================
Viper provides buffer search, the ability to search the buffer for a
region under the cursor. You have to turn this on in your Viper
customization file either by calling
(viper-buffer-search-enable)
or by setting ‘viper-buffer-search-char’ to, say, ‘f3’:
(setq viper-buffer-search-char ?g)
If the user calls ‘viper-buffer-search-enable’ explicitly (the first
method), then ‘viper-buffer-search-char’ will be set to ‘g’. Regardless
of how this feature is enabled, the key ‘viper-buffer-search-char’ will
take movement commands, like ‘w,/,e’, to find a region and then search
for the contents of that region. This command is very useful for
searching for variable names, etc., in a program. The search can be
repeated by ‘n’ or reversed by ‘N’.
Emacs provides incremental search. As you type the string in, the
cursor will move to the next match. You can snarf words from the buffer
as you go along. Incremental Search is normally bound to ‘C-s’ and
‘C-r’. Customization, to find out how to change the bindings of
‘C-r or C-s’. For details, Incremental Search (emacs)Incremental
Search.
Viper also provides a query replace function that prompts through the
minibuffer. It is invoked by the ‘Q’ key in Vi state.
On a window display, Viper supports mouse search, i.e., you can
search for a word by clicking on it. Viper Specials, for
details.
Finally, on a window display, Viper highlights search patterns as it
finds them. This is done through what is known as _faces_ in Emacs.
The variable that controls how search patterns are highlighted is
‘viper-search-face’. If you don’t want any highlighting at all, put
(copy-face 'default 'viper-search-face)
in your Viper customization file. If you want to change how patterns
are highlighted, you will have to change ‘viper-search-face’ to your
liking. The easiest way to do this is to use Emacs customization
widget, which is accessible from the menubar. Viper customization group
is located under the _Emulations_ customization group, which in turn is
under the _Editing_ group (or simply by typing ‘:customize’). All Viper
faces are grouped together under Viper’s _Highlighting_ group.
Try it: it is really simple!