15.1.5 Special Input for Incremental Search
In addition to characters described in the previous subsections, some of the other characters you type during incremental search have special effects. They are described here.
To toggle lax space matching (see lax space
matching), type M-s SPC
.
To toggle case sensitivity of the search, type M-c
or
M-s c
. See case folding. If the search string
includes upper-case letters, the search is case-sensitive by default.
To toggle whether or not the search will consider similar and
equivalent characters as a match, type M-s '
. See character folding. If the search string includes accented
characters, that disables character folding during that search.
To toggle whether or not invisible text is searched, type
M-s i
( isearch-toggle-invisible
). See Outline Search.
To toggle between non-regexp and regexp incremental search, type
M-r
or M-s r
( isearch-toggle-regexp
).
See Regular Expression Search.
To toggle symbol mode, type M-s _
. See Symbol Search.
To search for a newline character, type C-j
as part of the
search string.
To search for non-ASCII characters, use one of the following methods:
-
Type
C-q
(isearch-quote-char
), followed by a non-graphic character or a sequence of octal digits. This adds a character to the search string, similar to inserting into a buffer usingC-q
(see Inserting Text). For example,C-q C-s
during incremental search adds the ‘control-S
’ character to the search string. -
Type
C-x 8 RET
(isearch-char-by-name
), followed by a Unicode name or code-point in hex. This adds the specified character into the search string, similar to the usualinsert-char
command (see Inserting Text). -
Use an input method (see Input Methods). If an input method is enabled in the current buffer when you start the search, the same method will be active in the minibuffer when you type the search string. While typing the search string, you can toggle the input method with
C-\
(isearch-toggle-input-method
). You can also turn on a non-default input method withC-^
(isearch-toggle-specified-input-method
), which prompts for the name of the input method. When an input method is active during incremental search, the search prompt includes the input method mnemonic, like this:
I-search [im]:
where im is the mnemonic of the active input method. Any input
method you enable during incremental search remains enabled in the
current buffer afterwards. Finally, you can temporarily enable a
transient input method (see transient input method) with
C-x \
( isearch-transient-input-method
) to insert a single
character to the search string using an input method, and
automatically disable the input method afterwards.
Typing M-s o
in incremental search invokes
isearch-occur
, which runs occur
with the current search
string. See occur.
Typing M-%
( isearch-query-replace
) in incremental
search invokes query-replace
or query-replace-regexp
(depending on search mode) with the current search string used as the
string to replace. A negative prefix argument means to replace
backward. See Query Replace. Typing C-M-%
( isearch-query-replace-regexp
) invokes
query-replace-regexp
with the current search string used as the
regexp to replace.
Typing M-TAB
in incremental search invokes
isearch-complete
, which attempts to complete the search string
using the search ring (the previous search strings you used) as a list
of completion alternatives. See Completion. In many operating
systems, the M-TAB
key sequence is captured by the window
manager; you then need to rebind isearch-complete
to another
key sequence if you want to use it (see Changing Key Bindings Interactively).
You can exit the search while leaving the matches highlighted by
typing M-s h r
( isearch-highlight-regexp
). This runs
highlight-regexp
(see Interactive Highlighting), passing it
the regexp derived from the search string and prompting you for the face
to use for highlighting. To highlight whole lines containing
matches (rather than just the matches), type M-s h l
( isearch-highlight-lines-matching-regexp
). In either case, to
remove the highlighting, type M-s h u
( unhighlight-regexp
).
When incremental search is active, you can type C-h C-h
( isearch-help-map
) to access interactive help options,
including a list of special key bindings. These key bindings are part
of the keymap isearch-mode-map
(see Keymaps).
When incremental search is active, typing M-s M->
will go to
the last occurrence of the search string, and M-s M-<
will go to
the first occurrence. With a prefix numeric argument of n,
these commands will go to the nth occurrence of the search
string counting from the beginning or end of the buffer,
respectively.