简体   繁体   中英

Unable to search effectively in Emacs

I want to have a similar tool in Emacs as the following in Vim

 :g/search/

to get a list of matches.

How can you get a list of matches in Emacs?

Mx occur ?

From the manual :

Mx occur

Prompt for a regexp, and display a list showing each line in the buffer that contains a match for it. The text that matched is highlighted using the match face. 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. The default number of context lines is specified by the variable list-matching-lines-default-context-lines .

In the *Occur* buffer, you can click on each entry, or move point there and type RET , to visit the corresponding position in the buffer that was searched. o and Co display the match in another window; Co does not select it. Alternatively, you can use the Cx ` ( next-error ) command to visit the occurrences one by one (see Compilation Mode).

Typing e in the *Occur* buffer switches to Occur Edit mode, in which edits made to the entries are also applied to the text in the originating buffer. Type Cc Cc to return to Occur mode.

The command Mx list-matching-lines is a synonym for Mx occur .

In addition to Mx occurr check also Mx grep. This works in several files at once.

My usual workflow is not to get a list and choose (don't know how to do that), but to use the incremental search:

C-s <search target>

gets the fist match after the point. If you don't like it another Cs gets the next one. Continue until you're happy (you'll need an extra Cs to wrap around from the and of the buffer). New enough emacsen can also highlight all the matches that are visible.

As noted in the comments by Török Gábor, this is the typical keybinding of isearch-forward . In the event that your bindings are different, you need to modify the prescribed procedure.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM