mirror of
https://github.com/webinstall/webi-installers.git
synced 2026-08-19 03:56:16 +00:00
add vim-nerdtree
This commit is contained in:
@@ -0,0 +1,89 @@
|
||||
---
|
||||
title: vim-nerdtree
|
||||
homepage: https://github.com/preservim/nerdtree
|
||||
tagline: |
|
||||
NERDTree: A tree explorer plugin for vim.
|
||||
---
|
||||
|
||||
To update (replacing the current version) run `webi vim-nerdtree`.
|
||||
|
||||
## Cheat Sheet
|
||||
|
||||

|
||||
|
||||
> 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 installer also includes a few reasonable defaults from the project's
|
||||
README:
|
||||
|
||||
| Key | Action |
|
||||
| ---------------------------- | -------------------------------------------------------------------- |
|
||||
| **Global Key Bindings** | |
|
||||
| `<Leader>n` | Move cursor to NERDTree |
|
||||
| `<ctrl>+t`<br>or `<Leader>`t | Toggle NERDTree window on/off |
|
||||
| `<ctrl>+f`<br>or `<Leader>`f | Move to current file in NERDTree |
|
||||
| **NERDTree Window Bindings** | |
|
||||
| `o` | Open a directory to reveal children |
|
||||
| `x` | Close directory and go to parent |
|
||||
| `shift+o` | Open directory and all children dirs, recursively |
|
||||
| `shift+x` | Close all child directories, recursively |
|
||||
| `p` | Go to **p**arent directory |
|
||||
| `gt` | Go to next Tab (`gT` for previous, naturally) |
|
||||
| `/` | Search matches of visible files <br>(use `shift+o` first to see all) |
|
||||
| **Normal Vim Stuff** | |
|
||||
| `ctrl+w`, w | Rotate between open windows |
|
||||
| `:e **/api.js<tab>` | Open and edit file matching api.js, in any subfolder |
|
||||
|
||||
(if you've installed [`vim-leader`](../vim-leader) then `<Leader>` is Space)
|
||||
|
||||
### How to install and configure manually
|
||||
|
||||
Place NerdTree into your `~/.vim/pack/plugins/start`:
|
||||
|
||||
```bash
|
||||
mkdir -p ~/.vim/pack/plugins/start/
|
||||
git clone --depth=1 https://github.com/preservim/nerdtree.git ~/.vim/pack/plugins/start/nerdtree
|
||||
```
|
||||
|
||||
Create the file `~/.vim/plugins/nerdtree.vim`. Add the same contents as
|
||||
<https://github.com/webinstall/webi-installers/blob/master/vim-nerdtree/nerdtree.vim>.
|
||||
|
||||
That will look something like this:
|
||||
|
||||
`~/.vim/plugins/nerdtree.vim`:
|
||||
|
||||
```vim
|
||||
" default mappings for nerdtree
|
||||
nnoremap <leader>n :NERDTreeFocus<CR>
|
||||
nnoremap <C-n> :NERDTree<CR>
|
||||
nnoremap <C-t> :NERDTreeToggle<CR>
|
||||
nnoremap <C-f> :NERDTreeFind<CR>
|
||||
|
||||
" also map with Leader, since ctrl is hard to reach on Mac
|
||||
nnoremap <leader>t :NERDTreeToggle<CR>
|
||||
nnoremap <leader>f :NERDTreeFind<CR>
|
||||
|
||||
" show hidden files
|
||||
let NERDTreeShowHidden=1
|
||||
|
||||
" keep ignoring .git, node_modules, vendor, and dist
|
||||
let NERDTreeIgnore=["\.git", "node_modules", "vendor", "dist"]
|
||||
|
||||
" Start NERDTree when Vim is started without file arguments.
|
||||
autocmd StdinReadPre * let s:std_in=1
|
||||
autocmd VimEnter * if argc() == 0 && !exists('s:std_in') | NERDTree | endif
|
||||
|
||||
" Exit Vim if NERDTree is the only window left.
|
||||
autocmd BufEnter * if tabpagenr('$') == 1 && winnr('$') == 1 && exists('b:NERDTree') && b:NERDTree.isTabTree() |
|
||||
\ quit | endif
|
||||
|
||||
```
|
||||
|
||||
You'll then need to update `~/.vimrc` to source that plugin:
|
||||
|
||||
```vim
|
||||
" nerdtree: reasonable defaults from webinstall.dev/vim-nerdtree
|
||||
source ~/.vim/plugins/nerdtree.vim
|
||||
```
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/usr/bin/env pwsh
|
||||
|
||||
IF (!(Test-Path -Path "$Env:USERPROFILE\.vim\pack\plugins\start")) {
|
||||
New-Item -Path "$Env:USERPROFILE\.vim\pack\plugins\start" -ItemType Directory -Force
|
||||
}
|
||||
Remove-Item -Path "$Env:USERPROFILE\.vim\pack\plugins\start\nerdtree" -Recurse -ErrorAction Ignore
|
||||
& git clone --depth=1 https://github.com/preservim/nerdtree.git "$Env:USERPROFILE\.vim\pack\plugins\start\nerdtree.vim"
|
||||
@@ -0,0 +1,37 @@
|
||||
#!/bin/bash
|
||||
|
||||
function __init_vim_nerdtree() {
|
||||
set -e
|
||||
set -u
|
||||
|
||||
mkdir -p "$HOME/.vim/pack/plugins/start"
|
||||
rm -rf "$HOME/.vim/pack/plugins/start/nerdtree.vim"
|
||||
git clone --depth=1 https://github.com/preservim/nerdtree.git "$HOME/.vim/pack/plugins/start/nerdtree.vim"
|
||||
|
||||
if [ ! -f "$HOME/.vimrc" ]; then
|
||||
touch "$HOME/.vimrc"
|
||||
fi
|
||||
|
||||
mkdir -p ~/.vim/plugins
|
||||
if ! [ -f "$HOME/.vim/plugins/nerdtree.vim" ]; then
|
||||
WEBI_HOST=${WEBI_HOST:-"https://webinstall.dev"}
|
||||
curl -fsSL -o ~/.vim/plugins/nerdtree.vim "$WEBI_HOST/packages/vim-nerdtree/nerdtree.vim"
|
||||
fi
|
||||
|
||||
if ! grep 'source.*plugins.nerdtree.vim' -r ~/.vimrc >/dev/null 2>/dev/null; then
|
||||
set +e
|
||||
mkdir -p ~/.vim/plugins
|
||||
printf '\n" CtrlP: reasonable defaults from webinstall.dev/vim-nerdtree\n' >> ~/.vimrc
|
||||
printf 'source ~/.vim/plugins/nerdtree.vim\n' >> ~/.vimrc
|
||||
set -e
|
||||
echo ""
|
||||
echo "add ~/.vim/plugins/nerdtree.vim"
|
||||
echo "updated ~/.vimrc with 'source ~/.vim/plugins/nerdtree.vim'"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "vim-nerdtree enabled with reasonable defaults"
|
||||
|
||||
}
|
||||
|
||||
__init_vim_nerdtree
|
||||
@@ -0,0 +1,27 @@
|
||||
" default mappings for nerdtree
|
||||
nnoremap <leader>n :NERDTreeFocus<CR>
|
||||
nnoremap <C-n> :NERDTree<CR>
|
||||
nnoremap <C-t> :NERDTreeToggle<CR>
|
||||
nnoremap <C-f> :NERDTreeFind<CR>
|
||||
|
||||
" also map with Leader, since ctrl is hard to reach on Mac
|
||||
nnoremap <leader>t :NERDTreeToggle<CR>
|
||||
nnoremap <leader>f :NERDTreeFind<CR>
|
||||
|
||||
" show hidden files
|
||||
let NERDTreeShowHidden=1
|
||||
|
||||
" keep ignoring .git, node_modules, vendor, and dist
|
||||
let NERDTreeIgnore=["\.git", "node_modules", "vendor", "dist"]
|
||||
|
||||
" Start NERDTree when Vim is started without file arguments.
|
||||
autocmd StdinReadPre * let s:std_in=1
|
||||
autocmd VimEnter * if argc() == 0 && !exists('s:std_in') | NERDTree | endif
|
||||
|
||||
" Exit Vim if NERDTree is the only window left.
|
||||
autocmd BufEnter * if tabpagenr('$') == 1 && winnr('$') == 1 && exists('b:NERDTree') && b:NERDTree.isTabTree() |
|
||||
\ quit | endif
|
||||
|
||||
" if you want to change the default arrows
|
||||
"let g:NERDTreeDirArrowExpandable = '▸'
|
||||
"let g:NERDTreeDirArrowCollapsible = '▾'
|
||||
Reference in New Issue
Block a user