Vim的NerdTree插件

作者: Solomon_Xie | 来源:发表于2018-06-02 09:49 被阅读6次

    一个项目文件多起来时,左边的文件树菜单是必要的。

    参考:常用文件树快捷键
    所有命令及推荐键盘映射:官方

    image

    在vundle插件管理的方式,直接在~/.vimrc中的Plugin段落中加入Plugin "scrooloose/nerdtree "然后重启Vim并输入PluginInstall,即可完成安装

    然后输入: NERDTreeToggle即可打开文件树。当然,默认是关闭的,需要每次都输入命令打开。
    还可以设置vim快捷键来映射,在vimrc中加入:

    map <F3> :NERDTreeMirror<CR>
    map <F3> :NERDTreeToggle<CR>
    

    切换工作台和目录

    ctrl + w + h    光标 focus 左侧树形目录
    ctrl + w + l    光标 focus 右侧文件显示窗口
    ctrl + w + w    光标自动在左右侧窗口切换
    ctrl + w + r    移动当前窗口的布局位置
    
    o       在已有窗口中打开文件、目录或书签,并跳到该窗口
    go      在已有窗口 中打开文件、目录或书签,但不跳到该窗口
    t       在新 Tab 中打开选中文件/书签,并跳到新 Tab
    T       在新 Tab 中打开选中文件/书签,但不跳到新 Tab
    i       split 一个新窗口打开选中文件,并跳到该窗口
    gi      split 一个新窗口打开选中文件,但不跳到该窗口
    s       vsplit 一个新窗口打开选中文件,并跳到该窗口
    gs      vsplit 一个新 窗口打开选中文件,但不跳到该窗口
    !       执行当前文件
    O       递归打开选中 结点下的所有目录
    m    文件操作:复制、删除、移动等
    

    切换标签页

    :tabnew [++opt选项] [+cmd] 文件      建立对指定文件新的tab
    :tabc   关闭当前的 tab
    :tabo   关闭所有其他的 tab
    :tabs   查看所有打开的 tab
    :tabp   前一个 tab
    :tabn   后一个 tab
    
    标准模式下:
    gT      前一个 tab
    gt      后一个 tab
    

    刚开始使用时候的小问题

    目前问题是,不能保存所有打开文件的状态。在同一个tab中打开另一个文件时,之前文件的编辑历史都会丢失,也就是没法u撤销编辑。即使有相关的方法控制这些,只是作为一个文件菜单来说,这也太麻烦了。
    解决方案:
    文件都在新tab打开,这样就可以保持各自状态了。

    常用键盘映射

    image

    NerdTree 在 .vimrc 中的常用配置

    autocmd vimenter * NERDTree  "自动开启Nerdtree
    "let g:NERDTreeWinSize = 25 "设定 NERDTree 视窗大小
    "开启/关闭nerdtree快捷键
    map <C-f> :NERDTreeToggle<CR>
    "let NERDTreeShowBookmarks=1  " 开启Nerdtree时自动显示Bookmarks
    "打开vim时如果没有文件自动打开NERDTree
    autocmd vimenter * if !argc()|NERDTree|endif
    "当NERDTree为剩下的唯一窗口时自动关闭
    autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
    "设置树的显示图标
    let g:NERDTreeDirArrowExpandable = '▸'
    let g:NERDTreeDirArrowCollapsible = '▾'
    let NERDTreeIgnore = ['\.pyc$']  " 过滤所有.pyc文件不显示
    "let g:NERDTreeShowLineNumbers=1  " 是否显示行号
    let g:NERDTreeHidden=0     "不显示隐藏文件
    "Making it prettier
    let NERDTreeMinimalUI = 1
    let NERDTreeDirArrows = 1
    

    Nerdtree隐藏某些指定文件

    Vim经常产生swp缓存文件,还有一些python产生的pyc文件,Nerdtree显示出来很不好看,最好屏蔽掉。
    在vimrc中配置这几句话可以达到效果:

    " 不显示隐藏文件
    let g:NERDTreeHidden=0
    " 过滤: 所有指定文件和文件夹不显示
    let NERDTreeIgnore = ['\.pyc$', '\.swp', '\.swo', '\.vscode', '__pycache__']  
    

    NerdTree的美化

    用多了Vim,就需要nerdtree树形菜单,用多了菜单,就像把它美化。

    一般最常用的美化Nerdtree插件就是vim-devicons,详细配置方法在github官网有,主要如下:

    1. 安装 Nerd Font字体,网址在此。安装字体的方法每个电脑系统不一样。因为全部字体多到3G,所以最快到方法是到官网首页点击Download,下载Droid Sans Mono Nerd这个字体,8M左右,下载好了如果是Mac的话,就选择压缩包里的Droid Sans Mono Nerd Font Complete.otf,双击安装。
    2. 在Terminal.app或iTerm2的系统设置里,设置字体为Droid Sans Mono Nerd
    3. ~/.vimrc中插件管理处加入Plugin 'ryanoasis/vim-devicons',重启vim然后:PluginInstall进行下载安装。
    4. ~/.vimrc中配置默认编码set encoding=utf8和默认字体set guifont=DroidSansMono_Nerd_Font:h11
      完成。
      然后就会变成这个样子:
      image

    进一步美化: vim-nerdtree-syntax-highlight插件

    vim-nerdtree-syntax-highlight插件是配合上面vim-devicons插件增强的。直接在vimrc中Plugin 'tiagofumo/vim-nerdtree-syntax-highlight',重启并:PluginInstall即可。效果如下:

    image

    注意:安装完vim-devicons后,vim速度已经有些许延迟了,再安装这个插件会感受到更明显的延迟。

    相关文章

      网友评论

        本文标题:Vim的NerdTree插件

        本文链接:https://www.haomeiwen.com/subject/ayolsftx.html