Fandom

Vim Tips Wiki

Search through files

1,624pages on
this wiki
Add New Page
Talk0 Share

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.

Tip 961 Printable Monobook Previous Next

created July 22, 2005 · complexity intermediate · author Bertram Scharpf · version 6.0


When searching all your source files where you left a /TODO/ or where you had version conflicts />>>>/, you may quickly step through all files using a mapping like:

nmap <F3> :silent exec "while !search( @/, \"W\") \| bnext \| 0 \| endwhile"<CR>

This automatically goes to the next file if the pattern doesn't occur in the current.

CommentsEdit

You can use BufGrep function. It greps for the relevant search string in all the opened buffers- the search result is available in a quick fox window.


Thanks for the Tip. I found that it didn't find the search pattern if the pattern was on the first line. The fix was start new buffer searches from the end of the file and wrap to the beginning. I also added a reverse search. Here's the updated mapping:

map <F3> :silent exec "let flags = \"W\" \| while !search( @/, flags) \| bnext \| $ \| let flags = \"w\" \| endwhile"<CR><CR>
map <S-F3> :silent exec "let flags = \"bW\" \| while !search( @/, flags) \| bprev \| 0 \| let flags = \"bw\" \| endwhile"<CR><CR>

I'm not entirely sure what this does - is it something that could be accomplished with :vimgrep or with :grep and a customized 'grepprg'? That would seem to me the better option.

See Find in files within Vim or :help :vimgrep, :help :grep, :help 'grepprg'.

--Fritzophrenic 18:22, 29 February 2008 (UTC)

Also on Fandom

Random Wiki