The NERDTree is a file system explorer for the Vim editor. Using this plugin, users can visually browse complex directory hierarchies, quickly open files for reading or editing, and perform basic file system operations.
This plugin can also be extended with custom mappings using a special API. The details of this API and of other NERDTree features are described in the included documentation.
Below are just some of the methods for installing NERDTree. Do not follow all of these instructions; just pick your favorite one. Other plugin managers exist, and NERDTree should install just fine with any of them.
If you are using VIM version 8 or higher you can use its built-in package management; see :help packages
for more information. Just run these commands in your terminal:
git clone https://github.com/preservim/nerdtree.git ~/.vim/pack/vendor/start/nerdtree
vim -u NONE -c "helptags ~/.vim/pack/vendor/start/nerdtree/doc" -c q
Otherwise, these are some of the several 3rd-party plugin managers you can choose from. Be sure you read the instructions for your chosen plugin, as there typically are additional steps you nee d to take.
In the terminal,
git clone https://github.com/preservim/nerdtree.git ~/.vim/bundle/nerdtree
In your vimrc,
call pathogen#infect()
syntax on
filetype plugin indent on
Then reload vim, run :helptags ~/.vim/bundle/nerdtree/doc/
or :Helptags
.
call vundle#begin()
Plugin 'preservim/nerdtree'
call vundle#end()
call plug#begin()
Plug 'preservim/nerdtree'
call plug#end()
apt-vim install -y https://github.com/preservim/nerdtree.git
F.A.Q. (here, and in the Wiki)
Yes, install nerdtree-git-plugin.
Nope. If this is something you want then chances are you aren't using tabs and buffers as they were intended to be used. Read this http://stackoverflow.com/questions/102384/using-vims-tabs-like-buffers
If you are interested in this behaviour then consider vim-nerdtree-tabs
Stick this in your vimrc: autocmd vimenter * NERDTree
Stick this in your vimrc:
autocmd StdinReadPre * let s:std_in=1
autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif
Note: Now start vim with plain vim
, not vim .
What if I'm also opening a saved session, for example vim -S session_file.vim
? I don't want NERDTree to open in that scenario.
autocmd StdinReadPre * let s:std_in=1
autocmd VimEnter * if argc() == 0 && !exists("s:std_in") && v:this_session == "" | NERDTree | endif
autocmd StdinReadPre * let s:std_in=1
autocmd VimEnter * if argc() == 1 && isdirectory(argv()[0]) && !exists("s:std_in") | exe 'NERDTree' argv()[0] | wincmd p | ene | exe 'cd '.argv()[0] | endif
This window is tab-specific, meaning it's used by all windows in the tab. This trick also prevents NERDTree from hiding when first selecting a file.
Note: Executing vim ~/some-directory
will open NERDTree and a new edit window. exe 'cd '.argv()[0]
sets the pwd
of the new edit window to ~/some-directory
Stick this in your vimrc to open NERDTree with Ctrl+n
(you can set whatever key you want):
map <C-n> :NERDTreeToggle<CR>
Stick this in your vimrc:
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
See here: preservim#433 (comment)
Use these variables in your vimrc. Note that below are default arrow symbols
let g:NERDTreeDirArrowExpandable = '▸'
let g:NERDTreeDirArrowCollapsible = '▾'