Next: How do I input a newline character in isearch or query-replace?, Previous: How do I control Emacs’s case-sensitivity when searching/replacing?, Up: Common requests [Contents][Index]
To search for a single character that appears in the buffer as, for example, ‘\237’, you can type C-s C-q 2 3 7. Searching for all unprintable characters is best done with a regular expression (regexp) search. The easiest regexp to use for the unprintable chars is the complement of the regexp for the printable chars.
To type these special characters in an interactive argument to
isearch-forward-regexp
or re-search-forward
, you need to
use C-q. (‘\t’, ‘\n’, ‘\r’, and ‘\f’ stand
respectively for TAB, LFD, RET, and C-l.) So,
to search for unprintable characters using re-search-forward
:
M-x re-search-forward RET [^ TAB C-q LFD C-q RET C-q C-l SPC -~] RET
Using isearch-forward-regexp
:
C-M-s [^ TAB LFD C-q RET C-q C-l SPC -~]
To delete all unprintable characters, simply use replace-regexp:
M-x replace-regexp RET [^ TAB C-q LFD C-q RET C-q C-l SPC -~] RET RET
Replacing is similar to the above. To replace all unprintable characters with a colon, use:
M-x replace-regexp RET [^ TAB C-q LFD C-q RET C-q C-l SPC -~] RET : RET