243

If I add a file to the same directory opened in NERDTree, the only way I can see the file added is if I quit vim and start it again .

Is there a way I can reload the files in NERDTree?

Sheharyar
  • 65,583
  • 19
  • 152
  • 196
lesce
  • 6,074
  • 5
  • 25
  • 34

5 Answers5

422

You could close and reopen NERDTree or simply hit r to refresh the current directory's listing or R to refresh the root directory's listing .

Do you see "Press ? for help" at the top of the NERDTree window? It means that you can press ? for help. If you do, you will see an exhaustive listing of NERDTree shortcuts. That's neat.

More generally, many plugins have a thorough documentation that you can access with :help <pluginame>.

Sheharyar
  • 65,583
  • 19
  • 152
  • 196
romainl
  • 158,436
  • 18
  • 236
  • 264
  • 16
    closing and re-opening NERDTree doesn't work ... r works ! Thanks ! – lesce Jan 09 '12 at 20:12
  • 6
    Re-opening it didn't work because NERDTree caches the directory listing. You can see a message to that effect when refreshing with 'r'. – mqsoh Jan 09 '12 at 20:26
  • 3
    I'd looked over the `?` help three times and never saw `r`! – Cory Klein Jul 08 '14 at 19:49
  • 2
    Indeed, the NERDTree help window does not list the `r` shortcut – micahbf Oct 01 '14 at 22:48
  • 1
    The NERDTree `?` quickhelp does list these shortcuts, in its “Filesystem mappings” section. It lists “`r`: refresh cursor dir” and “`R`: refresh current root”. – Rory O'Kane Nov 26 '14 at 11:01
  • Upvoted for `Do you see "Press ? for help"? It means that you can press ? for help.` –  Jun 20 '16 at 13:16
22

As @romainl answered above; press r to refresh current directory or R to refresh root directory.

You can consider adding new files from nerdTree itself by pressing m, then a to add a new file (or directory by adding a trailing slash). This way you don't need to refresh nerdTree to see the new added file.

Muhammad Reda
  • 24,289
  • 12
  • 85
  • 99
7

Refresh NERDTree

Instead of hitting R in the NERDTree window, I use a custom map that does it for me:

nmap <Leader>r :NERDTreeRefreshRoot

I've mapped it to Leader + r, but you can map it to whatever you want.


Explanation:

  • It first switches to the NERDTree window
  • Then refreshes the Root Node (by simulating the R key)
  • And finally switches back to the previous window

Note: You can add a last step to refresh CtrlP along with NERDTree

Sheharyar
  • 65,583
  • 19
  • 152
  • 196
5

You can hit R button by using feedkeys function. Just like this:

call feedkeys("R")  

I have defined a function in my .vimrc file:

fun! ToggleNERDTreeWithRefresh()
    :NERDTreeToggle 
    if(exists("b:NERDTreeType") == 1)
        call feedkeys("R")  
    endif   
endf 

nmap <silent> <c-l> :call ToggleNERDTreeWithRefresh()<cr>  

So, when I type ctrl+l, the NERDTree will be toggled and refresh root directory.

HardcoreNewbie
  • 102
  • 2
  • 3
1

Personally I prefer to trigger the refresh automatically when focusing the NERDTree window. This autocommand (in your .vimrc) will do it

autocmd BufEnter NERD_tree_* | execute 'normal R'

Patrick
  • 1,543
  • 15
  • 29