Question

How do you do it?

Was it helpful?

Solution

Okay, the previous version was a bit terse, but the answer you're looking for is to add the line below into your ~/.vimrc file. It tells vim that you want to setup a command to run when vim starts, but since it depends on various plugins to be loaded, you don't want to run it until all initialization is finished. The line below does this.

autocmd VimEnter * NERDTree

If, however, you're annoyed by the fact that the cursor always starts in the NERDTree window, you can add a second autocommand that will move the cursor into the main window, like so:

autocmd VimEnter * NERDTree
autocmd VimEnter * wincmd p

OTHER TIPS

I like to see NERDTree only when I start vim without file arguments, so I added this to my .vimrc:

autocmd VimEnter * if !argc() | NERDTree | endif

Are you on a Windows or unix-y system?

If you're on a unix-y system you put plugins in ~/.vim/plugin. Here's what my plugin directory looks like:

$ ls ~/.vim/plugin
NERD_tree.vim  scratch.vim  scratchfind.vim

After that it starts working right away. Try running vim like this:

$ vim .

It should open the current directory in the NERD tree view.

If you're on Windows you put plugins here: C:\Program Files\Vim\vim70\plugin


To get NERDTree to load automatically when you start up vim, run it like this from the command line:

$ vim -c "NERDTree" some_file.txt

You can set an alias for this in your .bashrc:

alias vimt='vim -c "NERDTree" $1'

Now whenever you run vimt (instead of vim) you'll also open up NERDTree on the left side of the window.

You could also add a shortcut key to start NERDTree in your .vimrc this way:

function OpenNERDTree()
  execute ":NERDTree"
endfunction
command -nargs=0 OpenNERDTree :call OpenNERDTree()

nmap <ESC>t :OpenNERDTree<CR>

Now when you hit Esc then t it will pop open NERDTree.

As per the instructions on https://github.com/scrooloose/nerdtree, you can just use pathogen.vim (https://github.com/tpope/vim-pathogen). Install pathogen with:

mkdir -p ~/.vim/autoload ~/.vim/bundle; \
curl -Sso ~/.vim/autoload/pathogen.vim \
        https://raw.github.com/tpope/vim-pathogen/master/autoload/pathogen.vim

Add this to your vimrc:

execute pathogen#infect()

then install NERDTree:

cd ~/.vim/bundle
git clone https://github.com/scrooloose/nerdtree.git

And if you want to open a NERDTree automatically when vim starts up, add the following to your vimrc:

autocmd vimenter * NERDTree

The answers here have a minor problem.

If you call vim --noplugin or use a script that uses --noplugin mode such as vimpager, it will cause this error:

Error detected while processing VimEnter Auto commands for "*":
E492: Not an editor command: NERDTree

To avoid this, put the command in ~/.vim/after/plugin/NERD_tree.vim instead:

autocmd VimEnter * NERDTree

And it might also be a good idea to test that NERDtree is available as well, i.e.:

if exists("loaded_nerd_tree")
    autocmd VimEnter * NERDTree
endif
" NERD Tree
nmap <silent> <special> <F2> :NERDTreeToggle<RETURN>
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top