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