+
+@node Search Customizations
+@section Tailoring Search to Your Needs
+@cindex search customizations
+
+ This section describes miscellaneous search-related customizations
+not described elsewhere.
+
+@cindex default search mode
+@cindex search mode, default
+ The default search mode for the incremental search is specified by
+the variable @code{search-default-mode}. It can be @code{nil},
+@code{t}, or a function. If it is @code{nil}, the default mode is to
+do literal searches without character folding, but with case folding
+and lax-whitespace matches as determined by @code{case-fold-search}
+and @code{search-whitespace-regexp}, respectively (@pxref{Lax
+Search}). If the value is @code{t}, incremental search defaults to
+regexp searches. The default value specifies a function that only
+performs case folding and lax-whitespace matching.
+
+@vindex search-highlight
+ The current match of an on-going incremental search is highlighted
+using the @code{isearch} face. This highlighting can be disabled by
+setting the variable @code{search-highlight} to @code{nil}.
+
+@cindex lazy highlighting customizations
+@vindex isearch-lazy-highlight
+@cindex lazy-highlight face
+ The other matches for the search string that are visible on display
+are highlighted using the @code{lazy-highlight} face. Setting the
+variable @code{isearch-lazy-highlight} to @code{nil} disables this
+highlighting. Here are some other variables that customize the lazy
+highlighting:
+
+@table @code
+@item lazy-highlight-initial-delay
+Time in seconds to wait before highlighting visible matches.
+
+@item lazy-highlight-interval
+Time in seconds between highlighting successive matches.
+
+@item lazy-highlight-max-at-a-time
+The maximum number of matches to highlight before checking for input.
+A large number can take some time to highlight, so if you want to
+continue searching and type @kbd{C-s} or @kbd{C-r} during that time,
+Emacs will not respond until it finishes highlighting all those
+matches. Thus, smaller values make Emacs more responsive.
+@end table
+
+@vindex search-nonincremental-instead
+ Normally, entering @key{RET} within incremental search when the
+search string is empty launches a nonincremental search. (Actually,
+it lets you edit the search string, and the next @key{RET} does the
+search.) However, if you customize the variable
+@code{search-nonincremental-instead} to @code{nil}, typing @key{RET}
+will always exit the incremental search, even if the search string is
+empty.
+
+@vindex isearch-hide-immediately
+ By default, incremental search and query-replace commands match
+invisible text, but hide any such matches as soon as the current match
+moves off the invisible text. If you customize the variable
+@code{isearch-hide-immediately} to @code{nil}, any invisible text
+where matches were found stays on display until the search or the
+replace command exits.
+
+@cindex search display on slow terminals
+@vindex search-slow-speed
+@vindex search-slow-window-lines
+ Searching incrementally on slow terminals, such as displays
+connected to remote machines over slow connection, could be annoying
+due to the need to redraw large portions of the display as the search
+proceeds. Emacs provides a special display mode for slow terminals,
+whereby search pops up a separate small window and displays the text
+surrounding the match in that window. Small windows display faster,
+so the annoying effect of slow speed is alleviated. The variable
+@code{search-slow-speed} determines the baud rate threshold below
+which Emacs will use this display mode. The variable
+@code{search-slow-window-lines} controls the number of lines in the
+window Emacs pops up for displaying the search results; the default is
+1 line. Normally, this window will pop up at the bottom of the window
+that displays the buffer where you start searching, bit if the value
+of @code{search-slow-window-lines} is negative, that means to put the
+window at the top and give it the number of lines that is the absolute
+value of that value.