Vim的NerdTree插件

article/2025/10/8 20:04:00

 

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中按Ctrl-I,其中I是大写。

Nerdtree刷新

正常下Nerdtree是不会自动刷新的,文件删除了,多了都不会自动显示。
但是其实不用退出vim,
r就一下子刷新了。

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速度已经有些许延迟了,再安装这个插件会感受到更明显的延迟。

最终配置

插件管理器处:

        "<NERDTREE>Plug 'scrooloose/nerdtree'          " File tree managerPlug 'jistr/vim-nerdtree-tabs'      " enhance nerdtree's tabsPlug 'ryanoasis/vim-devicons'       " add beautiful icons besides filesPlug 'Xuyuanp/nerdtree-git-plugin'  " display git status within NerdtreePlug 'tiagofumo/vim-nerdtree-syntax-highlight' " enhance devicons

配置:

" <Nerdtree>-------------------{">> Basic settingslet g:NERDTreeChDirMode = 2  "Change current folder as rootautocmd BufEnter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) |cd %:p:h |endif">> UI settingslet NERDTreeQuitOnOpen=1   " Close NERDtree when files was openedlet NERDTreeMinimalUI=1    " Start NERDTree in minimal UI mode (No help lines)let NERDTreeDirArrows=1    " Display arrows instead of ascii art in NERDTreelet NERDTreeChDirMode=2    " Change current working directory based on root directory in NERDTreelet g:NERDTreeHidden=1     " Don't show hidden fileslet NERDTreeWinSize=30     " Initial NERDTree widthlet NERDTreeAutoDeleteBuffer = 1  " Auto delete buffer deleted with NerdTree"let NERDTreeShowBookmarks=0   " Show NERDTree bookmarkslet NERDTreeIgnore = ['\.pyc$', '\.swp', '\.swo', '__pycache__']   " Hide temp files in NERDTree"let g:NERDTreeShowLineNumbers=1  " Show Line Number" Open Nerdtree when there's no file opened"autocmd vimenter * if !argc()|NERDTree|endif" Or, auto-open Nerdtree"autocmd vimenter * NERDTree" Close NERDTree when there's no other windowsautocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif" Customize icons on Nerdtreelet g:NERDTreeDirArrowExpandable = '▸'let g:NERDTreeDirArrowCollapsible = '▾'">> NERDTREE-GIT" Special characterslet g:NERDTreeIndicatorMapCustom = { \ "Modified"  : "✹",\ "Staged"    : "✚",\ "Untracked" : "✭",\ "Renamed"   : "➜",\ "Unmerged"  : "═",\ "Deleted"   : "✖",\ "Dirty"     : "✗",\ "Clean"     : "✔︎",\ 'Ignored'   : '☒',\ "Unknown"   : "?"\ }">> NERDTree-Tabs"let g:nerdtree_tabs_open_on_console_startup=1 "Auto-open Nerdtree-tabs on VIM enter">> Nerdtree-devicons"set guifont=DroidSansMono_Nerd_Font:h11">> Nerdtree-syntax-highlighting"let g:NERDTreeDisableFileExtensionHighlight = 1"let g:NERDTreeDisableExactMatchHighlight = 1"let g:NERDTreeDisablePatternMatchHighlight = 1"let g:NERDTreeFileExtensionHighlightFullName = 1"let g:NERDTreeExactMatchHighlightFullName = 1"let g:NERDTreePatternMatchHighlightFullName = 1"let g:NERDTreeHighlightFolders = 1 " enables folder icon highlighting using exact match"let g:NERDTreeHighlightFoldersFullName = 1 " highlights the folder name"let g:NERDTreeExtensionHighlightColor = {} " this line is needed to avoid error
" }

阅读 11.8k更新于 2019-01-06


http://chatgpt.dhexx.cn/article/xxJDNeeE.shtml

相关文章

分享一个Vim目录树的插件-NERDTree

之前的公司有目录树&#xff0c;方便很多&#xff0c;但是没把代码带过来&#xff0c;这次新找了一个&#xff0c;对于日常工作来说&#xff0c;确实方便很多。NERDTree是github上分享的免费的linux/vim上的目录树插件&#xff0c;有需要的可以参考原来的链接&#xff1a; NER…

java之TreeNode

~ 前言 之前讲的HashMap机制遗漏了一个Tree的操作&#xff0c;我们在这里补上。如果是从头看到这里那么这一章也会非常容易。 后续讲解内容为源码实现&#xff0c;这里使用的是JDK8的版本。 红黑树 HashMap使用的树结构是红黑树&#xff0c;而红黑树是一个平衡二叉树&#xf…

Vim升华之树形目录插件NERDTree安装图解

无意中看到实验室的朋友使用的vim竟然能在左边显示树形目录&#xff0c;感觉很方便&#xff0c;这样子文件夹有什么文件一目了然。她说是一个插件叫NERDTree&#xff0c;安装执行后的效果如下&#xff0c;不是你想要的效果就别安了。我的系统是Ubuntu12.04&#xff0c;版本不同…

gvim安装NERDTree插件

gvim安装NERDTree插件 安装vim plug遇到的问题安装成功 安装NERDTree插件遇到的问题安装成功 安装vim plug 访问网站链接: download vim-plug Linux终端命令敲入&#xff1a; curl -fLo ~/.vim/autoload/plug.vim --create-dirs \https://raw.githubusercontent.com/junegunn…

安装NERDtree

无意中看到实验室的朋友使用的vim竟然能在左边显示树形目录&#xff0c;感觉很方便&#xff0c;这样子文件夹有什么文件一目了然。她说是一个插件叫NERDTree&#xff0c;安装执行后的效果如下&#xff0c;不是你想要的效果就别安了。我的系统是Ubuntu12.04&#xff0c;版本不同…

nerdtree-git-plugin插件

给用 NERDTree 的同学推荐一个很好用的插件 nerdtree-git-plugin&#xff0c;这个插件能显示 git 管理的项目文件变更状态. 配置 这个插件是”开箱即用”的&#xff0c;不过建议大家做如下配置(用zsh的同学是不是很熟悉XD): let g:NERDTreeIndicatorMapCustom {\ "Mod…

NERDTree安装

转自https://blog.csdn.net/qq_33862644/article/details/80545654 安装&#xff1a; 1、下载vundle&#xff08;管理插件工具&#xff09; git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim 注意&#xff1a;~开始是下载到哪&#xff0c;…

linux下Nerdtree安装方法

目录 1.下载Nerdtree 2. linux下安装 3. 成功享受吧 1.下载Nerdtree 百度网盘下载&#xff0c;地址为链接&#xff1a;百度网盘 请输入提取码 提取码&#xff1a;07e3 --来自百度网盘超级会员V4的分享 github方式下载&#xff0c;地址为 https://github.com/scrooloose/ner…

GVim配置一个漂亮的NerdTree

GVim配置一个漂亮的NerdTree GVim使用也有一段时间了&#xff0c;有空写几个简单的教程帮助新手快速上手&#xff0c;定制一个个性化的编辑器把。以下是我的NerdTree效果展示。 NerdTree插件 NerdTree下载安装 如果你安装了插件管理器的化安装就很简单了&#xff0c;如果没有安…

NERDTree插件安装和使用

如何安装NERDTree插件&#xff0c;该插件显示一个目录树&#xff0c;可以执行一下文件的操作命令&#xff0c;首先添加配置&#xff1a; " 在vim中安装及配置NERDTree插件&#xff0c;放在Plugin gmarik/Vundle.vim 之后 Plugin scrooloose/nerdtree ""-----…

Win系统中GVim8.2配置NerdTree插件

目录 功能说明 NerdTree插件实现效果图&#xff1a; NerdTree安装&#xff1a; NerdTree配置 功能说明 NERDTree是Vim最常用的插件之一&#xff0c;可以在Vim运行时显示目录和文件结构&#xff0c;类似TextMate左侧的文件浏览器&#xff0c;但操作起来更为方便&#xff0c;…

vim插件:显示树形目录插件NERDTree安装 和 使用

前言 一、下载和配置 NERDTree插件的官方地址如下&#xff0c;可以从这里获取最新的版本 https://github.com/scrooloose/nerdtree 下载zip安装包 或者使用下面官网源文件安装方法 我的实验环境是centos6.6,其他版本可能有些不同。 安装方法很简单&#xff0c;先把压缩文件下…

VIM插件:目录导航与操作插件NERDTree的使用方法

VIM插件&#xff1a;目录导航与操作插件NERDTree的使用方法 &#x1f4d8; 从外部Buffer打开NERDTree的方法 &#x1f468;‍&#x1f4bb; 假设已经会了VIM的配置基本知识&#xff0c;并会安装和简单配置VIM插件了&#xff0c;如果这点不太熟悉&#xff0c;可以自行查看相关…

webview跳转外部链接

提示&#xff1a;本文章主要讲述js点击跳转外链 前言 一、示例模板 二、使用步骤 1.需点击跳转页面&#xff08;假设为a&#xff09; 2.跳转页面&#xff08;假设为b&#xff09; 3.json文件中配置路由 4.配置业务域名 总结 前言 官方介绍&#xff0c;web-view这个组件…

【小程序】Web-View 小程序跳转外部链接

写这个是因为&#xff0c;最近小程序的一个需求需要从小程序跳转到客户的官网&#xff0c;或者其他外部报名链接。 如果是以前的话&#xff0c;可能就无法实现&#xff0c;但是小程序的版本更新速度还是可观的&#xff0c;现在既可以跳转外部链接&#xff0c;还可以跳转APP&…

【Web-View】小程序跳转外部链接

最近小程序的一个需求要从小程序跳转到客户的官网&#xff0c;或者其他外部链接&#xff0c;如果是以前的话&#xff0c;可能就无法实现&#xff0c;但是小程序的版本更新速度还是可观的&#xff0c;现在既可以跳转外部链接&#xff0c;还可以跳转APP&#xff1b; 文档&#xf…

uniapp跳转外部链接

1、在需要跳转的地方添加点击事件 2、在点击事件的方法里 定义要跳转的外部链接地址&#xff0c;将链接传到webview.vue页面中 3、创建一个页面&#xff08;webview.vue&#xff09; 在页面中主要使用web-view标签 4、onLoad()用于接收传递过来的参数值&#xff0c; 赋值给w…

微信小程序跳转到外部链接

<web-view src"https://www.baidu.com/"></web-view>那比如这个跳转到www.baidu.com 就是行不通的了&#xff0c;只能是自己在开发的时候玩玩&#xff08;在开发者工具中点设置-项目设置-在不校验合法域名、web-view&#xff08;业务域名&#xff09;、T…

外部链接跳转微信小程序

外部链接跳转微信小程序 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zpcKl0T3-1621677958755)(image-20210416142912242.png)] [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LzC7TExH-1621677958761)(image-2021041…

小程序跳转外链

注意&#xff1a; 个人类型和海外类型的小程序不支持 web-view 标签 直接跳转显示如下页面 解决方案1&#xff1a; 将外链地址配置在微信公众的白名单中即可正常跳转 解决方案2&#xff1a; 新建一个 fbec_number_collection用web-view承载它以后就变成了小程序的路由跳…