Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
nerdtree plugin to integrate nerdtree with :grep : Forked from
"shove this in ~/.vim/nerdtree_plugin/grep_menuitem.vim
"A really rough integration of :grep with nerdtree. Adds a 'g' menu item that
"prompts the user for a search pattern to use with :grep. :grep is run on the
"selected dir (using the parent if a file is selected)
" Originally written by scrooloose
" (
if exists("g:loaded_nerdtree_grep_menuitem")
let g:loaded_nerdtree_grep_menuitem = 1
call NERDTreeAddMenuItem({
\ 'text': '(g)rep directory',
\ 'shortcut': 'g',
\ 'callback': 'NERDTreeGrep' })
function! NERDTreeGrep()
let dirnode = g:NERDTreeDirNode.GetSelected()
let pattern = input("Enter the search pattern: ")
if pattern == ''
echo 'Aborted'
"use the previous window to jump to the first search result
wincmd w
"a hack for *nix to make sure the output of "grep" isnt echoed in vim
let old_shellpipe = &shellpipe
let &shellpipe='&>'
exec 'silent cd ' . dirnode.path.str()
exec 'silent grep -rn ' . pattern . ' .'
" exec 'silent grep -rn ' . pattern . ' ' . dirnode.path.str()
let &shellpipe = old_shellpipe
let hits = len(getqflist())
if hits == 0
echo "No hits"
elseif hits > 1
" echo "Multiple hits. Jumping to first, use :copen to see them all."

Looks exactly what I have been looking for, but can't make it work. Hmm - folder path ~/.vim/nerdtree_plugin/: My Nerd-tree is located somewhere else. I tried putting the file here as well. Anything else I have to do to initialise it?

Nothing happens at the moment when opening Nerd-tree and pressing 'g' ...

@nikolajhave Try [vim-install-dir]/vimfiles/nerdtree_plugin/. However I'm using forked version of vim (Kaoriya's one, which is suitable for Japanese encoding) on Windows7, it might just be special directory for this version. But just try.

typekpb commented Sep 23, 2014

@masaakif would you mind extracting this to a plugin? that could make installation much easier for me (as I'm using vundle).

MarSoft commented Jun 3, 2017

@typekpb I have just converted this gist to Vundle-installable repository:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment