1
0
Fork 0
mirror of synced 2024-12-25 08:13:20 -05:00
ultimate-vim/sources_non_forked/nerdtree/README.markdown

99 lines
3.2 KiB
Markdown
Raw Normal View History

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
2018-02-04 06:35:08 -05:00
Then reload Vim, run `:helptags ~/.vim/bundle/nerdtree/doc/` or `:Helptags`, 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?
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
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
2019-03-08 06:04:56 -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-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
2019-03-08 06:04:56 -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-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 = '▾'