A tree explorer plugin for vim.
Go to file
Phil Runninger 42a5a2c106
Update PULL_REQUEST_TEMPLATE.md
Make the tag creation process semi-automatic by making bash do more of the legwork. The included bash commands will:

1. Make sure your master branch is up to date
2. Display all the patch releases in the current MAJOR.MINOR version
3. Ask for a version number to use as the tag (one of the ones previously displayed, presumably)
4. Get the latest commit's subject line, and use it in the tag's message field.
5. Create the tag, and push all tags to the origin.
2020-07-14 08:32:29 -04:00
.github Update PULL_REQUEST_TEMPLATE.md 2020-07-14 08:32:29 -04:00
autoload Fix the scope of several key mappings (#1151) 2020-07-12 10:03:24 -04:00
doc Fix the scope of several key mappings (#1151) 2020-07-12 10:03:24 -04:00
lib/nerdtree Fix new NERDTrees' width when previous one was in the only window. (#1153) 2020-07-14 07:20:48 -04:00
nerdtree_plugin cmd.exe /c start "" <filename> for windows default viewer support (#1130) 2020-05-22 08:57:19 -04:00
plugin Force NERDTreeFocus to allow events to be fired when switching windows. 2020-05-04 07:59:25 -04:00
syntax Closes #1136. Allow concealed characters to show another character. 2020-06-01 01:51:27 -04:00
_config.yml Set theme jekyll-theme-cayman 2019-12-30 23:31:06 -05:00
.gitignore gitignore tags file 2008-05-17 14:36:02 +12:00
.vintrc.yaml Configure Vint linter 2019-12-31 09:20:35 +03:00
CHANGELOG.md Fix new NERDTrees' width when previous one was in the only window. (#1153) 2020-07-14 07:20:48 -04:00
LICENCE add license file 2015-11-13 16:50:44 +00:00
README.markdown [add] How to install using dein.vim 2020-02-08 03:45:28 +09:00
screenshot.png Edit the README file 2017-07-28 20:38:26 -04:00

The NERDTree Vint

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

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.

Vim 8+ packages

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.

pathogen.vim

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.

Vundle.vim

call vundle#begin()
Plugin 'preservim/nerdtree'
call vundle#end()

vim-plug

call plug#begin()
Plug 'preservim/nerdtree'
call plug#end()

dein.vim

call dein#begin()
call dein#add('preservim/nerdtree')
call dein#end()

apt-vim

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

F.A.Q. (here, and in the Wiki)

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 .


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

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/preservim/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 = '▾'

You can remove the arrows altogether by setting these variables to empty strings, as shown below. This will remove not only the arrows, but a single space following them, shifting the whole tree two character positions to the left.

let g:NERDTreeDirArrowExpandable = ''
let g:NERDTreeDirArrowCollapsible = ''