Vim的NerdTree插件
參考:常用文件樹快捷鍵
所有命令及推薦鍵盤映射:官方
在vundle插件管理的方式,直接在~/.vimrc中的Plugin段落中加入`Plugin "scrooloose/nerdtree
"然后重啟Vim并輸入PluginInstall`,即可完成安裝
然后輸入: NERDTreeToggle即可打開文件樹。當然,默認是關閉的,需要每次都輸入命令打開。
還可以設置vim快捷鍵來映射,在vimrc中加入:
切換工作臺和目錄
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打開,這樣就可以保持各自狀態了。
常用鍵盤映射
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 = 1Nerdtree隱藏某些指定文件
Vim經常產生swp緩存文件,還有一些python產生的pyc文件,Nerdtree顯示出來很不好看,最好屏蔽掉。
在vimrc中配置這幾句話可以達到效果:
恢復顯示隱藏的文件的命令,在Nerdtree中按Ctrl-I,其中I是大寫。
Nerdtree刷新
正常下Nerdtree是不會自動刷新的,文件刪除了,多了都不會自動顯示。
但是其實不用退出vim,
按r就一下子刷新了。
NerdTree的美化
用多了Vim,就需要nerdtree樹形菜單,用多了菜單,就像把它美化。一般最常用的美化Nerdtree插件就是vim-devicons,詳細配置方法在github官網有,主要如下:
完成。
然后就會變成這個樣子:
進一步美化: vim-nerdtree-syntax-highlight插件
vim-nerdtree-syntax-highlight插件是配合上面vim-devicons插件增強的。直接在vimrc中Plugin 'tiagofumo/vim-nerdtree-syntax-highlight',重啟并:PluginInstall即可。效果如下:
注意:安裝完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 " }總結
以上是生活随笔為你收集整理的Vim的NerdTree插件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux 练习题-3文件与磁盘 问答
- 下一篇: 数据挖掘 pandas基础入门之操作