演示 这个插件的作用很大,可以方便的管理和打开文件、进入目录一个刚需插件。 看效果图,左侧的目录就是插件显示的效果。
安装 如果还不了解安装插件的话朋友,请移步vim-IDE 03 插件管理器plug插件 ,这里我们进行 vim IDE 化的第一个插件。
添加插件
vim ~/.config/nvim/init.vim
1 2 3 4 Plug 'scrooloose/nerdtree' , { 'on' : 'NERDTreeToggle' } Plug 'Xuyuanp/nerdtree-git-plugin'
添加保存后执行以下命令安装。
:PlugInstall
配置 刚安装后,还需要进行一些配置,可以添加一些个性化的配置,用起来才会顺手。 添加 NERDTree 配置
vim ~/.config/nvim/init.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 31 32 33 34 map <F3> :NERDTreeToggle<CR> autocmd vimenter * NERDTreemap <leader> r :NERDTreeFind<cr> <C-w> <C-w> "显示书签" let NERDTreeShowBookmarks=1 let NERDTreeIgnore=['\.pyc' ,'\~$' ,'\.swp' ]let g:NERDTreeIndicatorMapCustom = { \ "Modified" : "✹" , \ "Staged" : "✚" , \ "Untracked" : "✭" , \ "Renamed" : "➜" , \ "Unmerged" : "═" , \ "Deleted" : "✖" , \ "Dirty" : "✗" , \ "Clean" : "✔︎" , \ 'Ignored' : '☒' , \ "Unknown" : "?" \ }
使用 平时的使用常用的操作,打开、并闭、定位、隐藏等
说几个常用的
C 改变当前目录 大写C。 当目录展开很长的时间,你只想让当前目录成为根目录用这个,另外还可以解决,你在别的位置打开是git的项目git显示失效的问题。
左右窗口切换 Control + w + w,就是按住 Control 不放,再连续按两下。
定位打开文件位置 这个相当实用,分别输入 \
再输入 r
,跳转。这里\
是我的leader键。 有什么用?当你打开一个文件件,又去了不知名的目录后,想回到这个文件所在的目录,这个就很好用。 经常是打开一个工程目录后,到处看代码,要在代侧一行行找着回去特别麻烦,用这个非常方便。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 o : 打开文件go : 不离开nerdtree焦点打开文件i: 上下窗口显示文件 gi: 不离开nerdtree焦点的i s: 左右分隔窗口显示文件gs: 不离开nerdtree焦点的 u : 往上一层目录O: 递归展开目录 X : 递归收缩目录P : 到达根目录p : 到达当前的根目录C: 改变当前目录 r: 刷新 R: 递归刷新 q: 关闭tree窗口
书签 这个很实现,类拟于快插方式,将常用的目录放到书签下,可以快速定位。
常用命令:
1 2 3 4 5 6 7 :Bookmark <name> 将选中结点添加到书签列表中,并命名为name(书签名不可包含空格);如与现有书签重名,则覆盖现有书签 Bookmark xxx 可以为当前目录标记为名称为xxx的书签,之后使用 :BookmarkToRoot xxx 命令即可直接跳到该目录下。 :BookmarkToRoot <name> 以指定目录书签或文件书签的父目录作为根结点显示NerdTree :RevealBookmark <name> 如果指定书签已经存在于当前目录树下,打开它的上层结点并选中该书签 :OpenBookmark <name> 打开指定的文件。(参数必须是文件书签)如果该文件在当前的目录树下,则打开它的上层结点并选中该书签 :ClearBookmarks [<names> ] 清除指定书签;如未指定参数,则清除所有书签 :ClearAllBookmarks 清除所有书签
怎么用?
设置书签,下次在任何目录位置打开后,都可以从书签快速定位 在左侧树目录找到你要设置成书签的目录,将光标移动到那个目录。
格式:
:Bookmark 书签名
:Bookmark java :Bookmark go
可以看到 Bookmarks 就是设置好的书签,可以从上面直接到达目标位置。
查看帮助
:help NERDTree
完整配置 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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 set fileencodings=utf-8 ,gb2312,gb18030,gbk,ucs-bom,cp936,latin1set enc=utf8set fencs=utf8,gbk,gb2312,gb18030set nocompatiblefiletype on filetype plugin indent on set tabstop=4 set shiftwidth =4 set softtabstop=4 set expandtabset cursorcolumnau BufReadPost * if line ("'\"" ) > 1 && line ("'\"" ) <= line ("$" ) | exe "normal! g'\"" | endif map td :set splitright<CR> :vsplit <CR> map ta :set nosplitright<CR> :vsplit <CR> map ts :set nosplitbelow<CR> :split <CR> map tw :set splitbelow<CR> :split <CR> map <M-up> :res -5 <CR> map <M-down> :res +5 <CR> map <M-left> :vertical resize -5 <CR> map <M-right> :vertical resize +5 <CR> map W :w <CR> map Q :wq <CR> map tq :q!<CR> map te :terminal<CR> set list listchars=extend s: ❯,precedes: ❮,ta b: ▸\syntax on set number "set relativenumber " 相对行号set wildmenu set hlsearch set incsearch set t_ut= vnoremap <C-y> nnoremap <C-p> call plug#begin('~/.vim/plugged' )Plug 'scrooloose/nerdtree' Plug 'Xuyuanp/nerdtree-git-plugin' call plug#end()map tt :NERDTreeToggle<CR> autocmd vimenter * NERDTreemap <leader> r :NERDTreeFind<cr> <C-w> <C-w> "显示书签" let NERDTreeShowBookmarks=1 let NERDTreeShowHidden=1 let NERDTreeIgnore=['\.pyc' ,'\~$' ,'\.swp' ]let g:NERDTreeGitStatusIndicatorMapCustom = { \ "Modified" : "✹" , \ "Staged" : "✚" , \ "Untracked" : "✭" , \ "Renamed" : "➜" , \ "Unmerged" : "═" , \ "Deleted" : "✖" , \ "Dirty" : "✗" , \ "Clean" : "✔︎" , \ 'Ignored' : '☒' , \ "Unknown" : "?" \ }
要特别提一下上面的配置中的两个快捷键
左侧文件树开关 默认输入 :NERDTreeToggle,调起或关才左侧菜单,但是每是都这样输这谁受的住加个快捷键 我加了方式为按两次t
,也就是tt
来按制开关
添加快捷定位 如果我有个文件在/data/test1/test2/aaa.log
, 但是在~/Download/
这个位置打开的,我想直接定位到/data/test1/test2/
这个目录下,可以通过:\ + r
定位当前文件所在目录,这个很有用
总结 到了这一部分,打开目录上的文件就有了一个文件的工具。