Global search and replace for VI
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
doc Add ability to customize searcher Nov 15, 2013
plugin Add ability to customize searcher Nov 15, 2013 Update May 2, 2016

VIM Plugin for doing a search and replace across many files.

About this plugin

Original plugin by Yegappan Lakshmanan

Modifications by Yan Pritzker:

  • Always grep recursive
  • Silence the search so you don't get a gigantic scroll list


  1. Use :Gsearch to get a buffer window of your search results
  2. then you can make the replacements inside the buffer window using traditional tools (%s/foo/bar/)
  3. Invoke :Greplace to make your changes across all files. It will ask you interatively y/n/a - you can hit 'a' to do all.
  4. Save changes to all files with :wall (write all)


To customize command used for :Gsearch you can update both the command and the default options.

Note: updating grepprg will have consequences on other commands that rely on grep vim command

  • git grep

    set grepprg=git\ grep
    let g:grep_cmd_opts = '--line-number'
  • ag

    set grepprg=ag
    let g:grep_cmd_opts = '--line-numbers --noheading'
  • ack

    set grepprg=ack
    let g:grep_cmd_opts = '--noheading'