This subsection describes how to control whether typing a command not specifically meaningful in searches exits the search before executing the command. It also describes two categories of commands which you can type without exiting the current incremental search, even though they are not themselves part of incremental search.
Normally, typing a command that is not bound by the incremental
search exits the search before executing the command. Thus, the
command operates on the buffer from which you invoked the search.
However, if you customize the variable
nil, the characters which you type that are not interpreted by
the incremental search are simply appended to the search string. This
is so you could include in the search string control characters, such
as C-a, that would normally exit the search and invoke the
command bound to them on the buffer.
In previous versions of Emacs, entering a prefix argument always
terminated the search. You can revert to this behavior by setting the
isearch-allow-scroll is non-
nil (see below),
prefix arguments always have the default behavior described above,
i.e., they don't terminate the search, even if
isearch-allow-scrollto a non-
nilvalue, that enables the use of the scroll-bar, as well as keyboard scrolling commands like C-v, M-v, and C-l (see Scrolling). This applies only to calling these commands via their bound key sequences—typing M-x will still exit the search. You can give prefix arguments to these commands in the usual way. This feature won't let you scroll the current match out of visibility, however.
isearch-allow-scroll feature also affects some other
commands, such as C-x 2 (
C-x ^ (
enlarge-window), which don't exactly scroll but do
affect where the text appears on the screen. It applies to any
command whose name has a non-
property. So you can control which commands are affected by changing
For example, to make C-h l usable within an incremental search
in all future Emacs sessions, use C-h c to find what command it
runs (see Key Help), which is
view-lossage. Then you can
put the following line in your init file (see Init File):
(put 'view-lossage 'isearch-scroll t)
This feature can be applied to any command that doesn't permanently
change point, the buffer contents, the match data, the current buffer,
or the selected window and frame. The command must not itself attempt
an incremental search. This feature is disabled if
nil (which it is by default).