前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >vim-IDE进化04 NERD-tree 文件目录管理树插件

vim-IDE进化04 NERD-tree 文件目录管理树插件

作者头像
潇洒
发布2023-10-23 08:44:24
6850
发布2023-10-23 08:44:24
举报
文章被收录于专栏:石头岛

演示

这个插件的作用很大,可以方便的管理和打开文件、进入目录一个刚需插件。 看效果图,左侧的目录就是插件显示的效果。

安装

如果还不了解安装插件的话朋友,请移步vim-IDE 03 插件管理器plug插件,这里我们进行 vim IDE 化的第一个插件。

添加插件

vim ~/.config/nvim/init.vim

代码语言:javascript
复制
" NERDTree文件树
Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' }
" NERDTree 中显示git信息
Plug 'Xuyuanp/nerdtree-git-plugin'

添加保存后执行以下命令安装。

:PlugInstall

配置

刚安装后,还需要进行一些配置,可以添加一些个性化的配置,用起来才会顺手。 添加 NERDTree 配置

vim ~/.config/nvim/init.vim

代码语言:javascript
复制

" =================================
" NERDTree
" =================================
" 默认输入 :NERDTreeToggle,调起左侧菜单,但是每是都这样输这谁受的住加个快捷键
" <F3> 代表 F3键
map <F3> :NERDTreeToggle<CR>

" 打开vim时自动打开NERDTree
autocmd vimenter * NERDTree

" \ + r 定位当前文件所在目录,这个很有用
" 当前从左树进入,又要将当前目录定位到当前位置用这个
map <leader>r :NERDTreeFind<cr> <C-w><C-w>

"显示书签"
let NERDTreeShowBookmarks=1

" 忽略一下文件的显示
let NERDTreeIgnore=['\.pyc','\~$','\.swp']
" git显示
let g:NERDTreeIndicatorMapCustom = {
    \ "Modified"  : "✹",
    \ "Staged"    : "✚",
    \ "Untracked" : "✭",
    \ "Renamed"   : "➜",
    \ "Unmerged"  : "═",
    \ "Deleted"   : "✖",
    \ "Dirty"     : "✗",
    \ "Clean"     : "✔︎",
    \ 'Ignored'   : '☒',
    \ "Unknown"   : "?"
    \ }
" }}}

使用

平时的使用常用的操作,打开、并闭、定位、隐藏等

说几个常用的

  1. C 改变当前目录 大写C。 当目录展开很长的时间,你只想让当前目录成为根目录用这个,另外还可以解决,你在别的位置打开是git的项目git显示失效的问题。
  2. 左右窗口切换 Control + w + w,就是按住 Control 不放,再连续按两下。
  3. 定位打开文件位置 这个相当实用,分别输入 \ 再输入 r,跳转。这里\是我的leader键。 有什么用?当你打开一个文件件,又去了不知名的目录后,想回到这个文件所在的目录,这个就很好用。 经常是打开一个工程目录后,到处看代码,要在代侧一行行找着回去特别麻烦,用这个非常方便。
代码语言:javascript
复制
o: 打开文件
go: 不离开nerdtree焦点打开文件
i: 上下窗口显示文件
gi: 不离开nerdtree焦点的i
s: 左右分隔窗口显示文件
gs: 不离开nerdtree焦点的
u: 往上一层目录
O: 递归展开目录
X: 递归收缩目录
P: 到达根目录
p: 到达当前的根目录
C: 改变当前目录
r: 刷新
R: 递归刷新
q: 关闭tree窗口

书签

这个很实现,类拟于快插方式,将常用的目录放到书签下,可以快速定位。

常用命令:

代码语言:javascript
复制
:Bookmark <name>    将选中结点添加到书签列表中,并命名为name(书签名不可包含空格);如与现有书签重名,则覆盖现有书签
  Bookmark xxx 可以为当前目录标记为名称为xxx的书签,之后使用 :BookmarkToRoot xxx 命令即可直接跳到该目录下。
:BookmarkToRoot <name>    以指定目录书签或文件书签的父目录作为根结点显示NerdTree
:RevealBookmark <name>    如果指定书签已经存在于当前目录树下,打开它的上层结点并选中该书签
:OpenBookmark <name>    打开指定的文件。(参数必须是文件书签)如果该文件在当前的目录树下,则打开它的上层结点并选中该书签
:ClearBookmarks [<names>]    清除指定书签;如未指定参数,则清除所有书签
:ClearAllBookmarks    清除所有书签

怎么用?

设置书签,下次在任何目录位置打开后,都可以从书签快速定位 在左侧树目录找到你要设置成书签的目录,将光标移动到那个目录。

格式:

:Bookmark 书签名

bookmarks
bookmarks

:Bookmark java :Bookmark go

bookmarks
bookmarks

可以看到 Bookmarks 就是设置好的书签,可以从上面直接到达目标位置。

查看帮助

:help NERDTree

完整配置

代码语言:javascript
复制
"=================================
" VIM 自身配置
"=================================
" 编码设置
set fileencodings=utf-8,gb2312,gb18030,gbk,ucs-bom,cp936,latin1
set enc=utf8
set fencs=utf8,gbk,gb2312,gb18030

" 启用插件
set nocompatible
filetype on
filetype plugin indent on

" Tab 转空格
set tabstop=4
set shiftwidth=4
set softtabstop=4
set expandtab

" 列高亮
set cursorcolumn

" 记录上次光标位置
au 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>

" 设置 buff、空白字符的视觉提示
set list listchars=extends:❯,precedes:❮,tab:▸\
" 这个提示在复制的时候是个问题
" set list listchars=extends:❯,precedes:❮,tab:▸\,trail:˽

" 其他的一些配置
syntax on   " 语法高亮
set number      " 显示行号
"set relativenumber    " 相对行号
set wildmenu    "  让vim命令可用Tab补全
set hlsearch      " 变输入搜索词边高亮
set incsearch      " 光标自动跳转到搜索结果上
set t_ut=  "防止vim背景颜色错误

" 复制系统到 vim
vnoremap <C-y> "+y
nnoremap <C-p> "*p

"=================================
" 插件部分--开始
"=================================
" 插件
call plug#begin('~/.vim/plugged')

" NERDTree
Plug 'scrooloose/nerdtree'
Plug 'Xuyuanp/nerdtree-git-plugin'

call plug#end()
"=================================
" 插件部分--结束
"=================================

"=================================
" NERDTree
"=================================

" 打开关闭 NERDTree
map tt :NERDTreeToggle<CR>

" 打开vim时自动打开NERDTree
autocmd vimenter * NERDTree

" \ + r 定位当前文件所在目录,这个很有用
" 当前从左树进入,又要将当前目录定位到当前位置用这个
map <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"   : "?"
    \ }
" }}}

要特别提一下上面的配置中的两个快捷键

  1. 左侧文件树开关 默认输入 :NERDTreeToggle,调起或关才左侧菜单,但是每是都这样输这谁受的住加个快捷键 我加了方式为按两次t,也就是tt来按制开关
  2. 添加快捷定位 如果我有个文件在/data/test1/test2/aaa.log, 但是在~/Download/这个位置打开的,我想直接定位到/data/test1/test2/这个目录下,可以通过: \ + r定位当前文件所在目录,这个很有用

总结

到了这一部分,打开目录上的文件就有了一个文件的工具。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-01-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 演示
  • 安装
  • 配置
  • 使用
  • 书签
    • 查看帮助
    • 完整配置
      • 要特别提一下上面的配置中的两个快捷键
      • 总结
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档