A tree explorer plugin for vim.
Go to file
Phil Runninger 371feb7e54
Support tab-specific CWDs (#1032)
* Change CWD when switching tabs to the tab's NERDTree root.

* Remove commented-out code.

* List the new possible value for NERDTreeChDirMode in doc.

* Add new option to select between `:cd` and `:tcd`.

* Document the new NERDTreeUseTCD option.

* Update version number in change log.
2019-10-16 13:26:20 -04:00
.github Update version number instructions in PR template and change log. 2019-10-11 10:44:25 -04:00
autoload Catch errors when trying to read CHANGELOG.md. (#1045) 2019-10-01 09:17:32 -04:00
doc Support tab-specific CWDs (#1032) 2019-10-16 13:26:20 -04:00
lib/nerdtree Support tab-specific CWDs (#1032) 2019-10-16 13:26:20 -04:00
nerdtree_plugin Suppress events for intermediate window/tab/buffer changes (#1026) 2019-08-08 22:00:35 -04:00
plugin Support tab-specific CWDs (#1032) 2019-10-16 13:26:20 -04:00
syntax Document NERDTreeNodeDelimiter #912 (#926) 2018-12-06 01:08:16 -05:00
.gitignore gitignore tags file 2008-05-17 14:36:02 +12:00
CHANGELOG.md Support tab-specific CWDs (#1032) 2019-10-16 13:26:20 -04:00
LICENCE add license file 2015-11-13 16:50:44 +00:00
README.markdown Add VIM built-in package management to readme (#1049) 2019-10-14 09:13:20 -04:00
screenshot.png Edit the README file 2017-07-28 20:38:26 -04:00

The NERDTree

Introduction

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.

NERDTree Screenshot

Installation

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/scrooloose/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 other options:

pathogen.vim

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

Then reload Vim, run :helptags ~/.vim/bundle/nerdtree/doc/ or :Helptags, and check out :help NERDTree.txt.

apt-vim

apt-vim install -y https://github.com/scrooloose/nerdtree.git

F.A.Q.

Is there any support for git flags?

Yes, install nerdtree-git-plugin.


Can I have the nerdtree on every tab automatically?

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


How can I open a NERDTree automatically when vim starts up?

Stick this in your vimrc: autocmd vimenter * NERDTree


How can I open a NERDTree automatically when vim starts up if no files were specified?

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 .


How can I open NERDTree automatically when vim starts up on opening a directory?

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


How can I map a specific key or shortcut to open NERDTree?

Stick this in your vimrc to open NERDTree with Ctrl+n (you can set whatever key you want):

map <C-n> :NERDTreeToggle<CR>

How can I close vim if the only window left open is a NERDTree?

Stick this in your vimrc:

autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif

Can I have different highlighting for different file extensions?

See here: https://github.com/scrooloose/nerdtree/issues/433#issuecomment-92590696


How can I change default arrows?

Use these variables in your vimrc. Note that below are default arrow symbols

let g:NERDTreeDirArrowExpandable = '▸'
let g:NERDTreeDirArrowCollapsible = '▾'