2017-07-28 20:38:26 -04:00
The NERDTree
2011-12-24 05:58:57 -05:00
=============
2017-07-28 20:38:26 -04:00
Introduction
------------
2011-12-24 05:58:57 -05:00
2017-07-28 20:38:26 -04:00
The NERDTree is a file system explorer for the Vim editor. Using this plugin,
2017-07-28 20:47:14 -04:00
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.
2011-12-24 05:58:57 -05:00
2017-07-28 20:38:26 -04:00
![NERDTree Screenshot ](https://github.com/scrooloose/nerdtree/raw/master/screenshot.png )
2011-12-24 05:58:57 -05:00
Installation
------------
2017-03-26 14:51:09 -04:00
#### [pathogen.vim](https://github.com/tpope/vim-pathogen)
2011-12-24 05:58:57 -05:00
2016-05-23 11:59:07 -04:00
git clone https://github.com/scrooloose/nerdtree.git ~/.vim/bundle/nerdtree
2011-12-24 05:58:57 -05:00
2017-12-19 09:45:47 -05:00
Then reload Vim, run `:helptags ~/.vim/bundle/nerdtree/doc/` or `:Helptags` , and check out `:help NERDTree.txt` .
2011-12-24 05:58:57 -05:00
2017-03-26 14:51:09 -04:00
#### [apt-vim](https://github.com/egalpin/apt-vim)
2015-07-30 08:52:17 -04:00
apt-vim install -y https://github.com/scrooloose/nerdtree.git
2017-07-28 20:38:26 -04:00
F.A.Q.
------
2011-12-24 05:58:57 -05:00
2015-05-02 07:01:22 -04:00
> Is there any support for `git` flags?
2011-12-27 16:52:43 -05:00
2015-05-02 07:01:22 -04:00
Yes, install [nerdtree-git-plugin ](https://github.com/Xuyuanp/nerdtree-git-plugin ).
2011-12-24 05:58:57 -05:00
2016-03-05 17:03:23 -05:00
---
2012-01-04 06:44:54 -05:00
2015-05-02 07:01:22 -04:00
> Can I have the nerdtree on every tab automatically?
2012-01-04 06:44:54 -05:00
2015-05-02 07:01:22 -04:00
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
2012-01-04 06:44:54 -05:00
2015-05-02 07:01:22 -04:00
If you are interested in this behaviour then consider [vim-nerdtree-tabs ](https://github.com/jistr/vim-nerdtree-tabs )
2012-01-04 06:44:54 -05:00
2016-03-05 17:03:23 -05:00
---
2015-05-02 07:01:22 -04:00
> How can I open a NERDTree automatically when vim starts up?
Stick this in your vimrc: `autocmd vimenter * NERDTree`
2016-03-05 17:03:23 -05:00
---
2015-05-02 07:01:22 -04:00
> How can I open a NERDTree automatically when vim starts up if no files were specified?
2015-11-26 13:57:38 -05:00
Stick this in your vimrc:
2014-06-29 07:29:49 -04:00
autocmd StdinReadPre * let s:std_in=1
2014-07-02 19:46:03 -04:00
autocmd VimEnter * if argc() == 0 & & !exists("s:std_in") | NERDTree | endif
2012-01-04 06:44:54 -05:00
2015-11-26 13:57:38 -05:00
Note: Now start vim with plain `vim` , not `vim .`
2016-10-09 03:26:48 -04:00
---
2016-10-10 15:16:00 -04:00
> How can I open NERDTree automatically when vim starts up on opening a directory?
2016-10-09 03:11:27 -04:00
autocmd StdinReadPre * let s:std_in=1
2019-03-05 11:25:49 -05:00
autocmd VimEnter * if argc() == 1 & & isdirectory(argv()[0]) & & !exists("s:std_in") | exe 'NERDTree' argv()[0] | wincmd p | ene | exe 'cd '.argv()[0] | endif
2016-10-09 03:26:48 -04:00
2016-10-10 15:16:00 -04:00
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.
2016-10-09 03:11:27 -04:00
2019-03-05 11:25:49 -05:00
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`
2016-03-05 17:03:23 -05:00
---
2015-05-02 07:01:22 -04:00
> How can I map a specific key or shortcut to open NERDTree?
2012-12-31 13:15:55 -05:00
2015-05-02 07:01:22 -04:00
Stick this in your vimrc to open NERDTree with `Ctrl+n` (you can set whatever key you want):
2014-10-29 20:00:36 -04:00
2015-05-12 15:58:35 -04:00
map < C-n > :NERDTreeToggle< CR >
2012-12-31 13:15:55 -05:00
2016-03-05 17:03:23 -05:00
---
2015-05-02 07:01:22 -04:00
> How can I close vim if the only window left open is a NERDTree?
2012-01-04 06:44:54 -05:00
2015-05-02 07:01:22 -04:00
Stick this in your vimrc:
2012-01-04 06:44:54 -05:00
2015-11-14 07:01:55 -05:00
autocmd bufenter * if (winnr("$") == 1 & & exists("b:NERDTree") & & b:NERDTree.isTabTree()) | q | endif
2015-05-12 15:57:49 -04:00
2016-03-05 17:03:23 -05:00
---
2015-05-12 15:57:49 -04:00
> Can I have different highlighting for different file extensions?
See here: https://github.com/scrooloose/nerdtree/issues/433#issuecomment-92590696
2015-09-11 13:44:06 -04:00
2016-03-05 17:03:23 -05:00
---
2015-09-11 13:44:06 -04:00
> How can I change default arrows?
Use these variables in your vimrc. Note that below are default arrow symbols
2016-10-04 17:52:12 -04:00
let g:NERDTreeDirArrowExpandable = '▸'
let g:NERDTreeDirArrowCollapsible = '▾'