Here are some other commands that find matches for a regular
expression. They all ignore case in matching, if the pattern contains
no upper-case letters and case-fold-search is non-nil.
Aside from occur and its variants, all operate on the text from
point to the end of the buffer, or on the region if it is active.
Prompt for one or more buffer names, ending with <RET>; then,
begin a multi-buffer incremental search in those buffers. (If the
search fails in one buffer, the next C-s tries searching the
next specified buffer, and so forth.) With a prefix argument, prompt
for a regexp and begin a multi-buffer incremental search in buffers
matching that regexp.
This command is just like multi-isearch-buffers, except it
performs an incremental regexp search.
Prompt for a regexp, and display a list showing each line in the
buffer that contains a match for it. To limit the search to part of
the buffer, narrow to that part (see Narrowing). A numeric
argument n specifies that n lines of context are to be
displayed before and after each matching line. Currently,
occur can not correctly handle multiline matches.
The buffer ‘*Occur*’ containing the output serves as a menu for
finding the occurrences in their original context. Click
Mouse-2 on an occurrence listed in ‘*Occur*’, or position
point there and type <RET>; this switches to the buffer that was
searched and moves point to the original of the chosen occurrence.
o and C-o display the match in another window; C-o
does not select it.
After using M-x occur, you can use next-error to visit
the occurrences found, one by one. Compilation Mode.
Run occur using the search string of the last incremental
string search. You can also run M-s o when an incremental
search is active; this uses the current search string.
Synonym for M-x occur.
This command is just like occur, except it is able to search
through multiple buffers. It asks you to specify the buffer names one
This command is similar to multi-occur, except the buffers to
search are specified by a regular expression that matches visited file
names. With a prefix argument, it uses the regular expression to
match buffer names instead.
Prompt for a regexp, and print the number of matches for it in the
buffer after point. If the region is active, this operates on the
Prompt for a regexp, and delete each line that contains a match for
it, operating on the text after point. This command deletes the
current line if it contains a match starting after point. If the
region is active, it operates on the region instead; if a line
partially contained in the region contains a match entirely contained
in the region, it is deleted.
If a match is split across lines, flush-lines deletes all those
lines. It deletes the lines before starting to look for the next
match; hence, it ignores a match starting on the same line at which
another match ended.
Prompt for a regexp, and delete each line that does not contain
a match for it, operating on the text after point. If point is not at
the beginning of a line, this command always keeps the current line.
If the region is active, the command operates on the region instead;
it never deletes lines that are only partially contained in the region
(a newline that ends a line counts as part of that line).
If a match is split across lines, this command keeps all those lines.