如何優雅地使用 VIM 檔案管理外掛 NERDTree

xinxingzhao發表於2016-06-03

相信所有使用 vim 的同學都知道檔案管理外掛 NERDTree,這個幾乎是所有擁護 vim 的開發人員都會使用的外掛,可是我在剛開始使用的時候,完全用錯了這個外掛,使用起來反而是負擔了。今天就總結一下如何優雅的使用 NERDTree。

NERDTree

安裝和基本用法

安裝外掛建議使用 Vundle 進行安裝, Vundle 的用法很簡單,可以到 GitHub 上面檢視。

在 NERDTree 操作區的一些基本操作:

  • ?: 快速幫助文件
  • o: 開啟一個目錄或者開啟檔案,建立的是 buffer,也可以用來開啟書籤
  • go: 開啟一個檔案,但是游標仍然留在 NERDTree,建立的是 buffer
  • t: 開啟一個檔案,建立的是Tab,對書籤同樣生效
  • T: 開啟一個檔案,但是游標仍然留在 NERDTree,建立的是 Tab,對書籤同樣生效
  • i: 水平分割建立檔案的視窗,建立的是 buffer
  • gi: 水平分割建立檔案的視窗,但是游標仍然留在 NERDTree
  • s: 垂直分割建立檔案的視窗,建立的是 buffer
  • gs: 和 gi,go 類似
  • x: 收起當前開啟的目錄
  • X: 收起所有開啟的目錄
  • e: 以檔案管理的方式開啟選中的目錄
  • D: 刪除書籤
  • P: 大寫,跳轉到當前根路徑
  • p: 小寫,跳轉到游標所在的上一級路徑
  • K: 跳轉到第一個子路徑
  • J: 跳轉到最後一個子路徑
  • <C-j><C-k>: 在同級目錄和檔案間移動,忽略子目錄和子檔案
  • C: 將根路徑設定為游標所在的目錄
  • u: 設定上級目錄為根路徑
  • U: 設定上級目錄為跟路徑,但是維持原來目錄開啟的狀態
  • r: 重新整理游標所在的目錄
  • R: 重新整理當前根路徑
  • I: 顯示或者不顯示隱藏檔案
  • f: 開啟和關閉檔案過濾器
  • q: 關閉 NERDTree
  • A: 全屏顯示 NERDTree,或者關閉全屏

以上是一些基本的用法,平時常用的就幾個。

NERDTree

增加一些配置

在使用 NERDTree 的過程中有一些不太方便的地方就是開啟的各個檔案不共享 NERDTree,所以就需要配合安裝一個共享外掛 vim-nerdtree-tabs, 這就讓你感覺只是開啟了一個 NERDTree

" 關閉NERDTree快捷鍵
map <leader>t :NERDTreeToggle<CR>
" 顯示行號
let NERDTreeShowLineNumbers=1
let NERDTreeAutoCenter=1
" 是否顯示隱藏檔案
let NERDTreeShowHidden=1
" 設定寬度
let NERDTreeWinSize=31
" 在終端啟動vim時,共享NERDTree
let g:nerdtree_tabs_open_on_console_startup=1
" 忽略一下檔案的顯示
let NERDTreeIgnore=['\.pyc','\~$','\.swp']
" 顯示書籤列表
let NERDTreeShowBookmarks=1

在 NERDTree 中顯示 git 資訊

開發的過程中,我們希望 git 資訊直接在 NERDTree 中顯示出來, 和 Eclipse 一樣,修改的檔案和增加的檔案都給出相應的標註, 這時需要安裝的外掛就是 nerdtree-git-plugin

配置資訊如下

let g:NERDTreeIndicatorMapCustom = {
    \ "Modified"  : "✹",
    \ "Staged"    : "✚",
    \ "Untracked" : "✭",
    \ "Renamed"   : "➜",
    \ "Unmerged"  : "═",
    \ "Deleted"   : "✖",
    \ "Dirty"     : "✗",
    \ "Clean"     : "✔︎",
    \ "Unknown"   : "?"
    \ }

下面的動畫展示了這個外掛配合後的效果:

nerdtree-git-plugin

NERDTree 配合使用這兩個外掛檔案管理就很棒了,當然如果再加上 ctrlp,那就無敵了。

相關文章