Vim基础篇(六)——文件管理插件NEARDTree

前言:
  对目录和文件进行管理的插件,比较好用的是NEARDTree,这篇文章介绍该插件的使用。

1 安装NEARDTree

  通过plug-vim插件管理器安装 NEARDTree ,修改.vimrc配置文件如下。

1
Plug 'Preservim/nerdtree'

  然后在Vim中执行指令 :PlugInstall 等待安装完成。

2 配置NEARDTree

  以下是我对NEARDTree的配置,将其添加到.vimrc文件中重启vim后生效。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"preservim/nerdtree
let g:NEARDTreeShowHidden = 1 "显示隐藏文件
let g:NEARDTreeWinPos = 'left' "左侧显示
let NEARDTreeMinimalUI = 1 "不显示帮助信息

autocmd VimEnter * NERDTree "启动Vim时启动NEARDTree

"当启动Vim未指定文件时,启动NEARDTree
autocmd StdinReadPre * let s:std_in = 1
autocmd VimEnter * if argc() == 0 && !exists('s:std_in') | NERDTree | endif

"Bug: 与ntpeters/vim-better-whitespace冲突。导致其保存删除空格功能失效,
"需要将光标移到其他Window再移回才能生效。
"如果启动时指定了文件,光标跳转到指定文件的Window
"autocmd StdinReadPre * let s:std_in = 1
"autocmd VimEnter * NERDTree | if argc() > 0 || exists("s:std_in") | wincmd p | endif

"指定目录启动Vim时启动NEARDTree
autocmd StdinReadPre * let s:std_in = 1
autocmd VimEnter * if argc() == 1 && isdirectory(argv()[0]) && !exists('s:std_in') |
\ execute 'NERDTree' argv()[0] | wincmd p | enew | execute 'cd '.argv()[0] | endif

"当NEARDTree是最后一个窗口时关闭Vim
autocmd BufEnter * if tabpagenr('$') == 1 && winnr('$') == 1 && exists('b:NERDTree') && b:NERDTree.isTabTree() |
\ quit | endif

"防止其他缓存取代NEARDTree窗口
autocmd BufEnter * if bufname('#') =~ 'NERD_tree_\d\+' && bufname('%') !~ 'NERD_tree_\d\+' && winnr('$') > 1 |
\ let buf = bufnr() | buffer# | execute "normal! \<C-W>w" | execute 'buffer'.buf | endif

  NEARDTree启动后还可对其进行操作,将光标移动到NEARDTree所在窗口中,输入 ? 在帮助信息和目录展示界面间切换。
  NEARDTree默认是不显示隐藏文件的,如果要显示隐藏文件可以修改配置文件 NEARDTreeShowHidden = 1 ,或将光标移动到NEARDTree窗口中键入 I 切换显示或不显示隐藏文件。更多信息可查看 ? 显示的帮助信息。

Vim基础篇(六)——文件管理插件NEARDTree

前言:
  对目录和文件进行管理的插件,比较好用的是NEARDTree,这篇文章介绍该插件的使用。

1 安装NEARDTree

  通过plug-vim插件管理器安装 NEARDTree ,修改.vimrc配置文件如下。

1
Plug 'Preservim/nerdtree'

  然后在Vim中执行指令 :PlugInstall 等待安装完成。

2 配置NEARDTree

  以下是我对NEARDTree的配置,将其添加到.vimrc文件中重启vim后生效。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"preservim/nerdtree
let g:NEARDTreeShowHidden = 1 "显示隐藏文件
let g:NEARDTreeWinPos = 'left' "左侧显示
let NEARDTreeMinimalUI = 1 "不显示帮助信息

autocmd VimEnter * NERDTree "启动Vim时启动NEARDTree

"当启动Vim未指定文件时,启动NEARDTree
autocmd StdinReadPre * let s:std_in = 1
autocmd VimEnter * if argc() == 0 && !exists('s:std_in') | NERDTree | endif

"Bug: 与ntpeters/vim-better-whitespace冲突。导致其保存删除空格功能失效,
"需要将光标移到其他Window再移回才能生效。
"如果启动时指定了文件,光标跳转到指定文件的Window
"autocmd StdinReadPre * let s:std_in = 1
"autocmd VimEnter * NERDTree | if argc() > 0 || exists("s:std_in") | wincmd p | endif

"指定目录启动Vim时启动NEARDTree
autocmd StdinReadPre * let s:std_in = 1
autocmd VimEnter * if argc() == 1 && isdirectory(argv()[0]) && !exists('s:std_in') |
\ execute 'NERDTree' argv()[0] | wincmd p | enew | execute 'cd '.argv()[0] | endif

"当NEARDTree是最后一个窗口时关闭Vim
autocmd BufEnter * if tabpagenr('$') == 1 && winnr('$') == 1 && exists('b:NERDTree') && b:NERDTree.isTabTree() |
\ quit | endif

"防止其他缓存取代NEARDTree窗口
autocmd BufEnter * if bufname('#') =~ 'NERD_tree_\d\+' && bufname('%') !~ 'NERD_tree_\d\+' && winnr('$') > 1 |
\ let buf = bufnr() | buffer# | execute "normal! \<C-W>w" | execute 'buffer'.buf | endif

  NEARDTree启动后还可对其进行操作,将光标移动到NEARDTree所在窗口中,输入 ? 在帮助信息和目录展示界面间切换。
  NEARDTree默认是不显示隐藏文件的,如果要显示隐藏文件可以修改配置文件 NEARDTreeShowHidden = 1 ,或将光标移动到NEARDTree窗口中键入 I 切换显示或不显示隐藏文件。更多信息可查看 ? 显示的帮助信息。

NEARDTree.png

  建议设置以下快捷键。

1
nnoremap <F2> :NEARDTreeToggle<CR>

  建议设置以下快捷键。

1
nnoremap <F2> :NEARDTreeToggle<CR>