Create a gist now

Instantly share code, notes, and snippets.

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.


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

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